Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Прямые запросы к бухгалтерским итогам (число прочтений - 123668 )
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Прямые запросы к бухгалтерским итогам
12. Января 2007 :: 11:58
Печать  
Прямые запросы к бухгалтерским итогам возможно ли это?
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #1 - 12. Января 2007 :: 12:03
Печать  
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #2 - 12. Января 2007 :: 14:02
Печать  

Ошибка:
БухИт = СоздатьОбъект("БыстрыеИтоги");
Неудачная попытка создания объекта (БыстрыеИтоги)
=================================================
ТЗ=СоздатьОбъект("ТаблицаЗначений");      
     БухИт = СоздатьОбъект("БыстрыеИтоги");
     БухИт.ИспользоватьСубконто(ВидыСубконто.Контрагенты,,1);
     БухИт.ВыполнитьЗапрос(НачДата,КонДата,"60,62",,,1,"Проводка","С");

ТекстЗапроса="SELECT * FROM $ТаблицаИтогов";
БухИт.ВыполнитьИнструкцию(ТекстЗапроса,ТЗ);
ТЗ.ВыбратьСтроку();
=====================================================
  
Наверх
 
IP записан
 
val
Full Member
***
Отсутствует


Дорогу осиливает идущий

Сообщений: 137
Зарегистрирован: 07. Июля 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #3 - 12. Января 2007 :: 14:28
Печать  
Можно и самому, типа
http://www.1cpp.ru/forum/YaBB.pl?num=1160426986/5#5
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #4 - 12. Января 2007 :: 15:18
Печать  
А вот ещё класс - наследник ODBCRecordset. Реализует ВТ БИОстатки и БИОборотыДтКт (аналоги восьмёрочных таблиц запросов). Подробности - в описании .ert. Ещё две ВТ остались не реализованными за ненадобностью.
Может, кому пригодится..

файл см. ниже
« Последняя редакция: 06. Февраля 2007 :: 10:57 - berezdetsky »  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #5 - 03. Февраля 2007 :: 14:36
Печать  
berezdetsky писал(а) 12. Января 2007 :: 15:18:
Может, кому пригодится..

Конечно пригодится Улыбка
Агромный сенькс.
При помощи этого класса удалось ускорить начисление амортизации в типовой Бухгалтерии в 50 раз!!!
Там, правда, есть возможность ускорить проведение при помощи замены конструкций типа
Код
Выбрать все
БухИт.ПериодМ(ДатаРасчета);
и
СтоимостьНач = БухИт.СНД(СчетУчетаИзСписка,,, ОС); 


на выполнение "родного" бухзапроса с занесением с кэш и выборку данных из кэша.

Только одно "но": класс не работает с конфигурациями без разделителя учета.
ИМХО класс достоин занять место в репозитарии Улыбка
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #6 - 06. Февраля 2007 :: 10:56
Печать  
steban писал(а) 03. Февраля 2007 :: 14:36:
При помощи этого класса удалось ускорить начисление амортизации в типовой Бухгалтерии в 50 раз!!!
Success noted.  Улыбка

Начисление амортизации - граничный случай. В бух. подсистеме остатки хранятся на начало квартала. Т.е. при расчете на произвольный момент такого ускорения не будет.

steban писал(а) 03. Февраля 2007 :: 14:36:
Только одно "но": класс не работает с конфигурациями без разделителя учета.
Исправил эту и другие ошибки (и добавил новые?  Озадачен ).

файл см. ниже
« Последняя редакция: 10. Февраля 2007 :: 11:47 - berezdetsky »  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #7 - 06. Февраля 2007 :: 11:38
Печать  
Сразу скажите, класс поддерживает только Скуль?
или все-таки с ДБФ также работает?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #8 - 06. Февраля 2007 :: 11:54
Печать  
С DBF не работает.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
lEX1C
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 4
Зарегистрирован: 07. Февраля 2007
Re: Прямые запросы к бухгалтерским итогам
Ответ #9 - 09. Февраля 2007 :: 11:47
Печать  
Заранее прошу прощения за вопрос, который может показаться вам глупым. Но все же..
При попытке создания объекта AccountsRecordSet получаю такую ошибку:


(1941)      Форма<<?>>.Параметр._ПриОткрытии();      Переменная не определена
D:\db\FinProg2006\AccountsRecordset.ert
Класс: AccountsRecordset Файл: D:\db\FinProg2006\AccountsRecordset.ert компиляция не выполнена!
SQLSession = СоздатьОбъект("AccountsRecordSet");
{D:\ТЕСТ БЫСТРЫХ ИТОГОВ.ERT(3)}: Внимание! Инициализация класса: AccountsRecordset закончилась не удачно!

Вот.. что я делаю не так?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #10 - 09. Февраля 2007 :: 12:48
Печать  
Закомментируй эту процедуру или добавь в глобальный модуль
Код
Выбрать все
Перем Форма Экспорт; 


Эта переменная используется при отладке классов. Подробности - в документации 1С++.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #11 - 09. Февраля 2007 :: 12:57
Печать  
berezdetsky писал(а) 09. Февраля 2007 :: 12:48:
Закомментируй эту процедуру или добавь в глобальный модуль
Код
Выбрать все
Перем Форма Экспорт; 


Эта переменная используется при отладке классов. Подробности - в документации 1С++.

Начиная с 2.0.3.2/2.5 уже не используется Улыбка

Отладка будет возможна в любом случае для ерт-файлов и встроенных обработок, но не для текстовых файлов.
Так что этот код можно удалить из своих классов, если не хотим иметь глобальную переменную.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #12 - 09. Февраля 2007 :: 13:01
Печать  
artbear писал(а) 09. Февраля 2007 :: 12:57:
Начиная с 2.0.3.2/2.5 уже не используется Улыбка

Отладка будет возможна в любом случае для ерт-файлов и встроенных обработок, но не для текстовых файлов.
Так что этот код можно удалить из своих классов, если не хотим иметь глобальную переменную.

Я использую 1.8.1.6.  Круглые глаза
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
lEX1C
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 4
Зарегистрирован: 07. Февраля 2007
Re: Прямые запросы к бухгалтерским итогам
Ответ #13 - 09. Февраля 2007 :: 13:02
Печать  
berezdetsky писал(а) 09. Февраля 2007 :: 12:48:
Закомментируй эту процедуру или добавь в глобальный модуль
Код
Выбрать все
Перем Форма Экспорт; 


Эта переменная используется при отладке классов. Подробности - в документации 1С++.


Спасибо огромное!
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #14 - 09. Февраля 2007 :: 13:14
Печать  
berezdetsky писал(а) 09. Февраля 2007 :: 13:01:
Я использую 1.8.1.6.  Круглые глаза

А зачем? Бросай ты ее, последние версии вроде практически совсем стабильно работают.
Да и фич много добавилось.
ЗЫ даже Федор Улыбка уже переходит на 2.5 Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
lEX1C
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 4
Зарегистрирован: 07. Февраля 2007
Re: Прямые запросы к бухгалтерским итогам
Ответ #15 - 09. Февраля 2007 :: 13:24
Печать  
Вот простой тестовый код:


Процедура Сформировать() 
     SQLSession = СоздатьОбъект("AccountsRecordSet");
     SQLSession.SetDatabase1C();
     SQLSession.УстановитьТекстовыйПараметр("ВыбДата", КонДата);
     
     ТекстЗапроса = "SELECT ОсновнойОстатки.Счет [Счет $Счет.Основной]
           | ОсновнойОстатки.Валюта [Валюта $Справочник.Валюты]
           | ОсновнойОстатки.СуммаОстатокДт
           | ОсновнойОстатки.СуммаОстатокКт
           | ОсновнойОстатки.ВалютнаяСуммаОстатокДт
           | ОсновнойОстатки.ВалютнаяСуммаОстатокКт
           | ОсновнойОстатки.КоличествоОстатокДт
           | ОсновнойОстатки.КоличествоОстатокКт
           |FROM $БИОстатки.Основной(:ВыбДата) AS ОсновнойОстатки
           |      INNER JOIN _1SACCS AS ПланСчетов (NOLOCK) ON ОсновнойОстатки.Счет = ПланСчетов.ID
           |ORDER BY ПланСчетов.SCHKOD";
     Если SQLSession.Открыть(ТекстЗапроса)=0 Тогда
           Ошибка=SQLSession.ПолучитьОписаниеОшибки();
           Если ПустаяСтрока(Ошибка)=0 Тогда
                 ВыполняемыйМодуль=СоздатьОбъект("ВыполняемыйМодуль");
                 ВыполняемыйМодуль.СформироватьОшибку(Ошибка);
           КонецЕсли;
     КонецЕсли;
Конецпроцедуры            

Ошибка исполнения:

ВыполняемыйМодуль.СформироватьОшибку(Ошибка);
{D:\ТЕСТ БЫСТРЫХ ИТОГОВ.ERT(27)}: Meta name parser error: неизвестное метаимя или алиас "$БИОстатки"

Что сейчас не так? Улыбка
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #16 - 09. Февраля 2007 :: 13:31
Печать  
artbear писал(а) 09. Февраля 2007 :: 13:14:
А зачем? Бросай ты ее, последние версии вроде практически совсем стабильно работают.
Да и фич много добавилось.

1.8.1.6 весьма стабильна. А фич добавилось.. Много? - Да. Нужных мне? -  Со сжатыми губами

+ IMHO, обсуждение версий - OFF этого топика.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #17 - 09. Февраля 2007 :: 13:40
Печать  
lEX1C писал(а) 09. Февраля 2007 :: 13:24:
Что сейчас не так? Улыбка

Метод Открыть() не переопределён. Используй ВыполнитьИнструкцию() или ВыполнитьСкалярный().

Обращу внимание: отсутствие явного БезСубконто это разворот остатка по всем субконто.
И запятая между полями должна быть.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #18 - 10. Февраля 2007 :: 11:59
Печать  
berezdetsky писал(а) 09. Февраля 2007 :: 13:40:
lEX1C писал(а) 09. Февраля 2007 :: 13:24:
Что сейчас не так? Улыбка

Метод Открыть() не переопределён. Используй ВыполнитьИнструкцию() или ВыполнитьСкалярный().

Переопределены методы Выполнить(), Подготовить(), Открыть().
Доработано описание.

файл см. ниже
« Последняя редакция: 21. Февраля 2007 :: 12:58 - berezdetsky »  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #19 - 21. Февраля 2007 :: 11:30
Печать  
Доброго время суток
делаю запрос:
     |      SELECT
     |              ОсновнойОборотыДтКт.Период
//      |            , ОсновнойОборотыДтКт.СчетДт [СчетДт $Счет.Основной]
//      |            , ОсновнойОборотыДтКт.СчетКт [СчетКт $Счет.Основной]
     |            , ОсновнойОборотыДтКт.Валюта [Валюта $Справочник.Валюты]
     |            , ОсновнойОборотыДтКт.СубконтоДт1 [СубконтоДт1 $Субконто]
     |            , ОсновнойОборотыДтКт.СубконтоДт1_вид
     |            , ОсновнойОборотыДтКт.СубконтоДт2 [СубконтоДт2 $Субконто]
     |            , ОсновнойОборотыДтКт.СуммаОборот
     |            , ОсновнойОборотыДтКт.ВалютнаяСуммаОборот
     |            , ОсновнойОборотыДтКт.КоличествоОборот
     |      FROM $БИОборотыДтКт.Основной(:НачДата, :КонДата ~,Квартал,,(Счет = :Счет),
     |                  (Контрагенты),) AS ОсновнойОборотыДтКт
     |            LEFT OUTER JOIN _1SACCS AS ПланСчетовДт (NOLOCK) ON ОсновнойОборотыДтКт.СчетДт = ПланСчетовДт.ID
     |            LEFT OUTER JOIN _1SACCS AS ПланСчетовКт (NOLOCK) ON ОсновнойОборотыДтКт.СчетКт = ПланСчетовКт.ID
     |      ORDER BY ОсновнойОборотыДтКт.Период
     |            , ПланСчетовДт.SCHKOD
     |            , ПланСчетовКт.SCHKOD
     |"
Вываливается ошибка:
The column prefix '_1SBKTTL_vt' does not match with a table name or alias name used in the query.
Подскажите в чем дело?

Вопрос снят!
« Последняя редакция: 22. Февраля 2007 :: 03:48 - Nick »  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #20 - 21. Февраля 2007 :: 12:09
Печать  
У этой ВТ нет поля Счет. Такое поле есть у ВТ БИОстатки а парсит поля ВТ одна процедура, вот и вылезло обращение к таблице остатков.  Смущённый
Т.е. тебе поможет условие (СчетДт = :Счет) или (СчетКт = :Счет).

Цитата:
     |            , ОсновнойОборотыДтКт.СубконтоДт2 [СубконтоДт2 $Субконто]

здесь, похоже, лишнее.

Ты разворачиваешь итоги по всем кредитовым субконто, а значения этих субконто не выбираешь. Результат получится интересный..
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #21 - 21. Февраля 2007 :: 13:01
Печать  
Исправлена неправильная нумерация субконто в ВТ БИОборотыДтКт при развороте по всем субконто.
« Последняя редакция: 23. Февраля 2007 :: 10:52 - berezdetsky »  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #22 - 22. Февраля 2007 :: 05:10
Печать  
Как получить обороты по счету со всеми счетами, и по всем субконто?
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #23 - 22. Февраля 2007 :: 05:24
Печать  
berezdetsky писал(а) 21. Февраля 2007 :: 12:09:
У этой ВТ нет поля Счет. Такое поле есть у ВТ БИОстатки а парсит поля ВТ одна процедура, вот и вылезло обращение к таблице остатков.  Смущённый
Т.е. тебе поможет условие (СчетДт = :Счет) или (СчетКт = :Счет).

Цитата:
    |            , ОсновнойОборотыДтКт.СубконтоДт2 [СубконтоДт2 $Субконто]

здесь, похоже, лишнее.

Ты разворачиваешь итоги по всем кредитовым субконто, а значения этих субконто не выбираешь. Результат получится интересный..

Спасибо сам понял, но всё равно в результате выдает пустую ТЗ, в чем может быть дело?
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #24 - 22. Февраля 2007 :: 10:35
Печать  
Nick писал(а) 22. Февраля 2007 :: 05:10:
Как получить обороты по счету со всеми счетами, и по всем субконто?

Например, так:
Код
Выбрать все
|SELECT ОсновнойОборотыДтКт.СчетДт [СчетДт $Счет.Основной]
|		, ОсновнойОборотыДтКт.СчетКт [СчетКт  $Счет.Основной]
|		, ОсновнойОборотыДтКт.Валюта [Валюта $Справочник.Валюты]
|		, ОсновнойОборотыДтКт.СубконтоДт1 [СубконтоДт1 $Субконто]
|		, ОсновнойОборотыДтКт.СубконтоДт1_вид
|		, ОсновнойОборотыДтКт.СубконтоДт2 [СубконтоДт2 $Субконто]
|		, ОсновнойОборотыДтКт.СубконтоДт2_вид
|		, ОсновнойОборотыДтКт.СубконтоДт3 [СубконтоДт3 $Субконто]
|		, ОсновнойОборотыДтКт.СубконтоДт3_вид
|		, ОсновнойОборотыДтКт.СубконтоКт1 [СубконтоКт1 $Субконто]
|		, ОсновнойОборотыДтКт.СубконтоКт1_вид
|		, ОсновнойОборотыДтКт.СубконтоКт2 [СубконтоКт2 $Субконто]
|		, ОсновнойОборотыДтКт.СубконтоКт2_вид
|		, ОсновнойОборотыДтКт.СубконтоКт3 [СубконтоКт3 $Субконто]
|		, ОсновнойОборотыДтКт.СубконтоКт3_вид
|		, ОсновнойОборотыДтКт.СуммаОборот
|		, ОсновнойОборотыДтКт.ВалютнаяСуммаОборот
|		, ОсновнойОборотыДтКт.КоличествоОборот
|FROM $БИОборотыДтКт.Основной(:НачДата, :КонДата ~,,,
|		((СчетДт = :ВыбСчет) OR (СчетКт = :ВыбСчет))
|		AND (РазделительУчета = :ВыбФирма)
|	) AS ОсновнойОборотыДтКт
|";
 


Напомню, ВТ БИОбороты, которая и должна возвращать обороты в разрезе Счет/КоррСчет, не реализована.

Nick писал(а) 22. Февраля 2007 :: 05:24:
Спасибо сам понял, но всё равно в результате выдает пустую ТЗ, в чем может быть дело?

Возможно, требуемых оборотов нет. Или где-то не хватает модификатора.  Нерешительный У меня твой запрос вернул результат. Выложи обработку, в которой это воспроизводится.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #25 - 23. Февраля 2007 :: 03:38
Печать  
Ещё такой вопрос: как получить обороты по счету (дебетовые и кредитовые), в разрезе одного субконто, например получить обороты по 62 счету в разрезе контрагентов
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #26 - 23. Февраля 2007 :: 09:25
Печать  
Nick писал(а) 23. Февраля 2007 :: 03:38:
Ещё такой вопрос: как получить обороты по счету (дебетовые и кредитовые), в разрезе одного субконто, например получить обороты по 62 счету в разрезе контрагентов

Две ВТ + UNION ALL.
Или запрос к _1sentry.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #27 - 23. Февраля 2007 :: 09:55
Печать  
berezdetsky писал(а) 23. Февраля 2007 :: 09:25:
Nick писал(а) 23. Февраля 2007 :: 03:38:
Ещё такой вопрос: как получить обороты по счету (дебетовые и кредитовые), в разрезе одного субконто, например получить обороты по 62 счету в разрезе контрагентов

Две ВТ + UNION ALL.
Или запрос к _1sentry.


Вот пример запроса:
     |      SELECT
     |              ОсновнойОборотыДтКт.Период
     |            , ОсновнойОборотыДтКт.СчетДт [СчетДт $Счет.Основной]
     |            , ОсновнойОборотыДтКт.СчетКт [СчетКт $Счет.Основной]
     |            , ОсновнойОборотыДтКт.СубконтоДт1 as [СубконтоДт1 $Субконто]
     |       , "             " as СубконтоКт1
     |            , ОсновнойОборотыДтКт.СуммаОборот
     |      FROM $БИОборотыДтКт.Основной(:НачДата, :КонДата ~,,,(СчетДт  = :Счет),Контрагенты,
     |) AS ОсновнойОборотыДтКт
     |
     |UNION ALL
     |
     |      SELECT
     |              ОсновнойОборотыДтКт.Период
     |            , ОсновнойОборотыДтКт.СчетДт [СчетДт $Счет.Основной]
     |            , ОсновнойОборотыДтКт.СчетКт [СчетКт $Счет.Основной]
     |            , "             "                  as СубконтоДт1
     |       , ОсновнойОборотыДтКт.СубконтоКт1 as [СубконтоКт1 $Субконто]
     |            , ОсновнойОборотыДтКт.СуммаОборот
     |      FROM $БИОборотыДтКт.Основной(:НачДата, :КонДата ~,,,(СчетКт  = :Счет),,Контрагенты
     |) AS ОсновнойОборотыДтКт

Судя по отладчику второй запрос не парсится!!! Почему?
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #28 - 23. Февраля 2007 :: 10:50
Печать  
Nick писал(а) 23. Февраля 2007 :: 09:55:
Судя по отладчику второй запрос не парсится!!! Почему?

Ошибка исправлена.

Код
Выбрать все
|SELECT   ОсновнойОборотыДт.СчетКт [КоррСчет $Счет.Основной]
|		, ОсновнойОборотыДт.СубконтоДт1 [Контрагент $Субконто]
|		, ОсновнойОборотыДт.СубконтоДт1_вид Контрагент_вид
|		, ОсновнойОборотыДт.СуммаОборот СуммаОборотДт  
|		, 0 СуммаОборотКт  
|FROM $БИОборотыДтКт.Основной(:НачДата, :КонДата ~,,,
|		(СчетДт = :Счет),
|		Контрагенты, БезСубконто
|	) AS ОсновнойОборотыДт  
|
|UNION ALL
|
|SELECT   ОсновнойОборотыКт.СчетДт [КоррСчет $Счет.Основной]
|		, ОсновнойОборотыКт.СубконтоКт1 [Контрагент $Субконто]
|		, ОсновнойОборотыКт.СубконтоКт1_вид Контрагент_вид
|		, 0 СуммаОборотДт  
|		, ОсновнойОборотыКт.СуммаОборот СуммаОборотКт  
|FROM $БИОборотыДтКт.Основной(:НачДата, :КонДата ~,,,
|		(СчетКт = :Счет),
|		БезСубконто, Контрагенты
|	) AS ОсновнойОборотыКт 



файл см. ниже
« Последняя редакция: 26. Февраля 2007 :: 15:14 - berezdetsky »  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #29 - 26. Февраля 2007 :: 11:31
Печать  
Доброго времени суток, насколько я понимаю остатки считаются следующим объразом:
Остаток_На_Начало + Обороты до даты расчета?
Если я получаю остаток на дату в начале месяца то выигрышь в скорости очень хороший, а если на дата в конеце месяца то не то что выигрыш а огромный проигрыш по времени + жрёт кучу оперативки Печаль, в чем может быть дело?
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #30 - 26. Февраля 2007 :: 11:48
Печать  
Покажи текст запроса, результат .Отладка(3) и КонецРассчитанногоПериодаБИ()
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #31 - 26. Февраля 2007 :: 12:01
Печать  
berezdetsky писал(а) 26. Февраля 2007 :: 11:48:
Покажи текст запроса, результат .Отладка(3) и КонецРассчитанногоПериодаБИ()


Итоги расчитаны по 31.03.07, только причем здесь точка расчета БИ? Такая ситуация с любым месяцем
Текст запроса в файле
  

1_002.zip ( 0 KB | Загрузки )
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #32 - 26. Февраля 2007 :: 12:37
Печать  
Это запрос на дату в начале месяца (начало 07.01.2007). По твоим словам, он тормозить не должен. Просьба подтвердить или опровергнуть.
И в файле нет текста твоего запроса (до парсера).

Нужно сказать, что при определении субконто позиционно, а не по видам, строится более эффективный выходной запрос. Это не усложнит твой запрос, т.к. нём отбирается только 1 счёт.

Исправлена ошибка, возникающая при использовании строковых констант в параметрах ВТ.
« Последняя редакция: 01. Марта 2007 :: 11:32 - berezdetsky »  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #33 - 27. Февраля 2007 :: 02:49
Печать  
berezdetsky писал(а) 26. Февраля 2007 :: 12:37:
Это запрос на дату в начале месяца (начало 07.01.2007). По твоим словам, он тормозить не должен. Просьба подтвердить или опровергнуть.
И в файле нет текста твоего запроса (до парсера).


Я думал что текст запроса генерится независимо от даты, и ещё к тому же сейчас почему то сумма по остатков с со стандартными БИ не идет! Раньше вроде шла Улыбка
Текст запроса в файле
  

1_003.zip ( 1 KB | Загрузки )
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #34 - 27. Февраля 2007 :: 03:02
Печать  
Ещё такой момент: если расчет производится для текущего месяца тормозов не наблюдается и итоги если расчитываешь по одному счету сходятся.
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #35 - 27. Февраля 2007 :: 15:13
Печать  
Ответил в ЛС.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
jsfilatov
YaBB Newbies
*
Отсутствует



Сообщений: 6
Местоположение: Новосибирск
Зарегистрирован: 28. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #36 - 01. Марта 2007 :: 10:56
Печать  
Код
Выбрать все
	ТекстЗапроса = "SELECT	ОсновнойОборотыДтКт.ПозицияДокумента
		|	, ОсновнойОборотыДтКт.ВидДокумента
		|	, ОсновнойОборотыДтКт.СчетДт [СчетДт $Счет.Рабочий]
		|	, ОсновнойОборотыДтКт.СчетКт [СчетКт $Счет.Рабочий]
		|	, ОсновнойОборотыДтКт.СубконтоДт1 [СубконтоДт1 $Субконто]
		|	, ОсновнойОборотыДтКт.СубконтоДт1_вид
		|	, ОсновнойОборотыДтКт.СуммаОборот
		|	, ОсновнойОборотыДтКт.ВалютнаяСуммаОборот
		|FROM $БИОборотыДтКт.Рабочий(:НачДата, :КонДата ~, Документ,
		|		INNER JOIN $Справочник.Контрагенты AS Контрагенты (NOLOCK) ON СубконтоДт1 = Контрагенты.ID,
		|		((СчетДт = :СчНал) OR (СчетДт = :СчБНал)) AND (СубконтоДт1 = :Контр),
		|		(Контрагенты),) AS ОсновнойОборотыДтКт
		|	LEFT OUTER JOIN _1SACCS AS ПланСчетовДт (NOLOCK) ON ОсновнойОборотыДтКт.СчетДт = ПланСчетовДт.ID
		|	LEFT OUTER JOIN _1SACCS AS ПланСчетовКт (NOLOCK) ON ОсновнойОборотыДтКт.СчетКт = ПланСчетовКт.ID
		|";

 



ТЗ = SQLSession.ВыполнитьИнструкцию(ТекстЗапроса);
{D:\ТЕСТОБОРОТОВПОДОКУ.ERT(54)}: State 42000, native 107, message [Microsoft][ODBC SQL Server Driver][SQL Server]The column prefix '_1SACCSEL_dt_vt' does not match with a table name or alias name used in

Что может быть?
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #37 - 01. Марта 2007 :: 11:32
Печать  
Исправлена ошибка, возникающая в ВТ ОборотыДтКт при задании периодичности Документ.
« Последняя редакция: 02. Марта 2007 :: 09:49 - berezdetsky »  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
jsfilatov
YaBB Newbies
*
Отсутствует



Сообщений: 6
Местоположение: Новосибирск
Зарегистрирован: 28. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #38 - 02. Марта 2007 :: 08:15
Печать  
Код
Выбрать все
	ТекстЗапроса = "SELECT	ОсновнойОборотыДтКт.РазделительУчета [РазделительУчета $Справочник.Фирмы]
		|	, ОсновнойОборотыДтКт.Документ
		|	, ОсновнойОборотыДтКт.ПозицияДокумента
		|	, ОсновнойОборотыДтКт.ВидДокумента
		|	, ОсновнойОборотыДтКт.СчетДт [СчетДт $Счет.Рабочий]
		|	, ОсновнойОборотыДтКт.СчетКт [СчетКт $Счет.Рабочий]
		|	, ОсновнойОборотыДтКт.СубконтоКт1 [СубконтоКт1 $Субконто]
		|	, ОсновнойОборотыДтКт.СубконтоКт1_вид
		|	, ОсновнойОборотыДтКт.СуммаОборот
		|	, ОсновнойОборотыДтКт.ВалютнаяСуммаОборот
		|FROM $БИОборотыДтКт.Рабочий(:НачДата, :КонДата ~, ДОКУМЕНТ,
		|		INNER JOIN $Справочник.Контрагенты AS Контрагенты (NOLOCK) ON СубконтоКт1 = Контрагенты.ID,
		|		((СчетКт = :СчНал) OR (СчетКт = :СчБНал)) AND (Контрагенты.ID = :Контр) AND (_1SJOURN_vt.IDDOCDEF in (select id from #TempTabIdDoc)),
		|		,(Контрагенты) ) AS ОсновнойОборотыДтКт
		|	LEFT OUTER JOIN _1SACCS AS ПланСчетовДт (NOLOCK) ON ОсновнойОборотыДтКт.СчетДт = ПланСчетовДт.ID
		|	LEFT OUTER JOIN _1SACCS AS ПланСчетовКт (NOLOCK) ON ОсновнойОборотыДтКт.СчетКт = ПланСчетовКт.ID
		|";
 



ТЗ = SQLSession.ВыполнитьИнструкцию(ТекстЗапроса);
{D:\ТЕСТОБОРОТОВПОДОКУ.ERT(121)}: State 42000, native 170, message [Microsoft][ODBC SQL Server Driver][SQL Server]Line 34: Incorrect syntax near ')'.



ругается на неправильно отпарсенную строку
Код
Выбрать все
INNER JOIN sc46 AS Контрагенты (NOLOCK) ON () = Контрагенты.ID  




на строку "ОсновнойОборотыДтКт.Документ" не обращай внимания. Подправил 2 строки (374 и 375) в твоем классе для получения DOCID
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #39 - 02. Марта 2007 :: 09:48
Печать  
jsfilatov писал(а) 02. Марта 2007 :: 08:15:
ругается на неправильно отпарсенную строку

Поправил. Также убраны фантомные количества и валюты в ВТ БИОстатки.

jsfilatov писал(а) 02. Марта 2007 :: 08:15:
на строку "ОсновнойОборотыДтКт.Документ" не обращай внимания. Подправил 2 строки (374 и 375) в твоем классе для получения DOCID

Поля ПозицияДокумента и ВидДокумента были сделаны по аналогии с виртуальными таблицами ODBCRecordset.

jsfilatov писал(а) 02. Марта 2007 :: 08:15:
Код
Выбрать все
(_1SJOURN_vt.IDDOCDEF in (select id from #TempTabIdDoc)) 

Недокументированные фичи не поддерживаются. Подмигивание
« Последняя редакция: 02. Марта 2007 :: 12:37 - berezdetsky »  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #40 - 02. Марта 2007 :: 10:04
Печать  
Выложите пожалуйста  простой пример работы с AccountsRecordsets.ert
Интересует:
1. Подключение (инициализация) этой обработки
2.Что нибудь простое например остатки по 62 счету
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #41 - 02. Марта 2007 :: 10:25
Печать  
Подключается как и любой другой класс 1С++.

Код
Выбрать все
// остаток по счету по всем разделителям учета
// на КонецРассчитанногоПериодаБИ()
ар = СоздатьОбъект("AccountsRecordSet");
ар.УстановитьТекстовыйПараметр("ВыбСчет",  ВыбСчет);
ТекстЗапроса = "
	|SELECT СуммаОстаток
	|	, КоличествоОстаток
	|	, ВалютнаяСуммаОстаток
	|	, Валюта [Валюта $Справочник.Валюты]
	|FROM $БИОстатки.Основной(,,
	|		(Счет = :ВыбСчет),
	|		БезСубконто
	|	) БИОстаткиОсновной
	|";
тз = ар.ВыполнитьИнструкцию(ТекстЗапроса);
тз.ВыбратьСтроку();

// остаток по группе счетов
ар.УложитьСписокОбъектов(СчетПоКоду("КодСчета"), "#accs", "Основной");
ТекстЗапроса = "
	|SELECT СуммаОстаток
	|	, КоличествоОстаток
	|	, ВалютнаяСуммаОстаток
	|	, Валюта [Валюта $Справочник.Валюты]
	|FROM $БИОстатки.Основной(,,
	|		(Счет IN (SELECT val FROM #accs)),
	|		БезСубконто
	|	) БИОстаткиОсновной
	|"; 

  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #42 - 02. Марта 2007 :: 10:30
Печать  
Спасибо
Цитата:
Подключается как и любой другой класс 1С++.

А как конкретно, можете написать?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #43 - 02. Марта 2007 :: 11:00
Печать  
Помести файлы из архива в каталог ИБ. Если Defcls.prm там уже есть, допиши в него содержимое файла из архива. Подробнее:
http://www.1cpp.ru/docum/html/classes.html
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #44 - 02. Марта 2007 :: 12:09
Печать  
переписал в каталог ИБ
При запуске:
Неудачная попытка создания объекта (AccountsRecordSet)
  
Наверх
 
IP записан
 
mash
1c++ donor
Отсутствует


1C++ v. 3.0.1.23

Сообщений: 148
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #45 - 02. Марта 2007 :: 12:13
Печать  
Кстати, параметризированные запросы не работают. Ругается на вызов ВыполнитьСкалярный без параметров, не понимаю почему вроде в defcls правильно прописано.
  

Поспешность наносит ущерб
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #46 - 02. Марта 2007 :: 12:19
Печать  
RuporAbsurda писал(а) 02. Марта 2007 :: 12:09:
переписал в каталог ИБ
При запуске:
Неудачная попытка создания объекта (AccountsRecordSet)

Незагружена 1С++ или
http://www.1cpp.ru/forum/YaBB.pl?num=1168603103/0#9
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #47 - 02. Марта 2007 :: 12:29
Печать  
RuporAbsurda писал(а) 02. Марта 2007 :: 12:24:
При открытии прописано:
ЗагрузитьВнешнююКомпоненту("1CPP.dll");

А по ссылке:
(1941)      Форма<<?>>.Параметр._ПриОткрытии();      Переменная не определена

Создай переменную "Форма" в глобальнике.
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #48 - 02. Марта 2007 :: 12:34
Печать  
Дело в том, что изначально не создается объект AccountsRecordSet, т.е. до Формы дело не доходит.
При том, что попробовал простой запрос с ODBCRecordset  - работает.
А почему AccountsRecordSet не создается? Может еще нужно, что то настроить, что бы класс подключался?
У меня в "Настройки 1С++" написано зарегистрировано классов 0!
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #49 - 02. Марта 2007 :: 12:36
Печать  
mash писал(а) 02. Марта 2007 :: 12:13:
Кстати, параметризированные запросы не работают. Ругается на вызов ВыполнитьСкалярный без параметров, не понимаю почему вроде в defcls правильно прописано.

Где ж правильно, если я забыл туда вписать этот метод?  Печаль
Исправлено.
« Последняя редакция: 03. Марта 2007 :: 13:57 - berezdetsky »  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #50 - 02. Марта 2007 :: 12:41
Печать  
RuporAbsurda писал(а) 02. Марта 2007 :: 12:34:
Дело в том, что изначально не создается объект AccountsRecordSet, т.е. до Формы дело не доходит.

Ты к правильным советам прислушивайся - у тебя класс не создается из-за синтакс-ошибки, нет переменной Форма.

ДОбавь в глобальнике
Перем Форма Экспорт;
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #51 - 02. Марта 2007 :: 12:46
Печать  
Цитата:
Неудачная попытка создания объекта (AccountsRecordSet)
это всё, или есть ещё какой-то текст?
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #52 - 02. Марта 2007 :: 12:51
Печать  
RuporAbsurda писал(а) 02. Марта 2007 :: 12:34:
У меня в "Настройки 1С++" написано зарегистрировано классов 0!

озадачил..  Озадачен
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #53 - 02. Марта 2007 :: 13:20
Печать  
Ты Экспорт точно не забыл?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #54 - 02. Марта 2007 :: 13:31
Печать  
Приношу извинения. Дурака свалял. Скопировал не в ту базу. Все работает!

Всего зарегистрировано классов: 1
Всего объявлено методов: 4
Подмигивание
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #55 - 03. Марта 2007 :: 10:58
Печать  
День добрый, было бы не плохо указывать какие ресурсы расчитывать в виртуальной таблицы, потому что если нужно например расчитать только ДТОстаток по счету в запросе выбирается всё ( Кт, Количество, Вал. сумма), что несколько замедляет выборку.
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #56 - 03. Марта 2007 :: 13:56
Печать  
Nick
IMHO, это излишне усложнит интерфейс ВТ. К тому же, такого функционала нет в 1Cv8 (с которой и рисовались эти ВТ), при том, что количество ресурсов там переменное.. Так что я этого делать не буду.
Однако, исходники класса открыты. Меняй всё, что считаешь нужным.

Исправлена ошибка в БИОборотыДтКт, возникавшая при включенном отборе по счетам.
Добавлена штатная возможность использовать поля ВидДокумента и ПозицияДокумента в соединениях и условиях.

Файл в репозитарии.
« Последняя редакция: 14. Июня 2007 :: 10:26 - berezdetsky »  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
jsfilatov
YaBB Newbies
*
Отсутствует



Сообщений: 6
Местоположение: Новосибирск
Зарегистрирован: 28. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #57 - 05. Марта 2007 :: 05:48
Печать  
berezdetsky писал(а) 03. Марта 2007 :: 13:56:
Исправлена ошибка в БИОборотыДтКт, возникавшая при включенном отборе по счетам.

Случайно отбор не по кредиту? А то баг был... Помучился часа 4, пока не дошло, где собака порылась Улыбка
berezdetsky писал(а) 03. Марта 2007 :: 13:56:
Добавлена штатная возможность использовать поля ВидДокумента и ПозицияДокумента в соединениях и условиях.


А по-подробнее можно?
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #58 - 05. Марта 2007 :: 10:16
Печать  
jsfilatov писал(а) 05. Марта 2007 :: 05:48:
berezdetsky писал(а) 03. Марта 2007 :: 13:56:
Исправлена ошибка в БИОборотыДтКт, возникавшая при включенном отборе по счетам.

Случайно отбор не по кредиту? А то баг был... Помучился часа 4, пока не дошло, где собака порылась Улыбка

Ага. А я случайно нашёл - всё мне эти отборы покоя не дают. Отбор по счетам (таблица _1saccsel) в классе не эффективно используется. Если не придумаю, как его использование красиво оформить в запросе, отключу вообще.

Цитата:
А по-подробнее можно?

Вместо
Код
Выбрать все
(_1SJOURN_vt.IDDOCDEF in (select id from #TempTabIdDoc))  

пишешь
Код
Выбрать все
(ВидДокумента in (select id from #TempTabIdDoc))  

Напомню, ВидДокумента и ПозицияДокумента существуют только при периодичности Документ.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
jsfilatov
YaBB Newbies
*
Отсутствует



Сообщений: 6
Местоположение: Новосибирск
Зарегистрирован: 28. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #59 - 05. Марта 2007 :: 10:27
Печать  
Глянь в своем классе строки 1155 и 1162, 1274 и 1281 Тоже смущают....
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #60 - 05. Марта 2007 :: 10:29
Печать  
jsfilatov писал(а) 05. Марта 2007 :: 05:48:
А по-подробнее можно?

Тебе скажу, что ПозицияДокумента там есть всегда, когда не используется таблица _1SBKTTLC. А используется эта таблица только при периодичности от месяца без разворота по субконто. Так что (почти) всегда можно приджойнить _1sjourn и...
Только тсс.. никому не рассказывай.  Смех
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #61 - 14. Марта 2007 :: 12:49
Печать  
А можно ли выцепить документ, которому принадлежат проводки?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #62 - 14. Марта 2007 :: 14:10
Печать  
Да. Что-то вроде
Код
Выбрать все
select right(ПозицияДокумента, 9) [Док $Документ], ВидДокумента Док_вид 

  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #63 - 16. Марта 2007 :: 13:12
Печать  
Как сгруппировать такой запрос по датам
|SELECT
     |ОсновнойОборотыДтКт.СубконтоКт1 [СубконтоКт1 $Субконто]
     |,ОсновнойОборотыДтКт.СубконтоКт1_вид
     |,ОсновнойОборотыДтКт.СубконтоКт2 [СубконтоКт2 $Субконто]
     |,ОсновнойОборотыДтКт.СубконтоКт2_вид
     |,ОсновнойОборотыДтКт.СуммаОборот
     |FROM
     | $БИОборотыДтКт.Основной(:НачДата, :КонДата~,,,((СчетКт=:СчКт) AND (СубконтоКт1=:ВНоменклатуры) AND (СубконтоКт2=:СтавкаНДС))) As ОсновнойОборотыДтКт
     |";
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #64 - 16. Марта 2007 :: 13:18
Печать  
Код
Выбрать все
|SELECT
|ОсновнойОборотыДтКт.СубконтоКт1 [СубконтоКт1 $Субконто]
|,ОсновнойОборотыДтКт.СубконтоКт1_вид
|,ОсновнойОборотыДтКт.СубконтоКт2 [СубконтоКт2 $Субконто]
|,ОсновнойОборотыДтКт.СубконтоКт2_вид
|,ОсновнойОборотыДтКт.СуммаОборот
|,ОсновнойОборотыДтКт.Период
|FROM
| $БИОборотыДтКт.Основной(:НачДата, :КонДата~, День,,((СчетКт=:СчКт) AND (СубконтоКт1=:ВНоменклатуры) AND (СубконтоКт2=:СтавкаНДС))) As ОсновнойОборотыДтКт   

  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #65 - 16. Марта 2007 :: 13:39
Печать  
Сгруппировать не получается - в таблице несколько записей по одному дню !
Может быть можно как то получить дату проводки (операции), что бы потом можно было свернуть?
  
Наверх
 
IP записан
 
mash
1c++ donor
Отсутствует


1C++ v. 3.0.1.23

Сообщений: 148
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #66 - 16. Марта 2007 :: 13:55
Печать  
А свернуть по левым 8 знакам позиции документа в результирующией таблице ?
  

Поспешность наносит ущерб
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #67 - 16. Марта 2007 :: 14:07
Печать  
Не получится - в пределах дня разные значения. Печаль
Нужно получить дату.
А можно ли из позиции документа получить дату?
  
Наверх
 
IP записан
 
mash
1c++ donor
Отсутствует


1C++ v. 3.0.1.23

Сообщений: 148
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #68 - 16. Марта 2007 :: 14:14
Печать  
левые 8 символов в date_time_iddoc есть год месяц и день.  Поэтому сделав group by left(ПозицияДокумента,8)  можно свернуть по датам.
  

Поспешность наносит ущерб
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #69 - 16. Марта 2007 :: 14:34
Печать  
ОК
так получилось:
        |  SELECT
     |CAST(LEFT(ПозицияДокумента, 8) as DateTime)
     |,SUM(ОсновнойОборотыДтКт.СуммаОборот)
     |FROM
     | $БИОборотыДтКт.Основной(:НачДата, :КонДата~,Документ,,((СчетКт=:СчКт) AND (СчетДт=:СчДт) AND (СубконтоДт1=:ВКонтрагент))) As ОсновнойОборотыДтКт
     |GROUP BY
     |CAST(LEFT(ПозицияДокумента, 8) as DateTime)
     |";
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #70 - 16. Марта 2007 :: 14:36
Печать  
RuporAbsurda писал(а) 16. Марта 2007 :: 13:39:
Сгруппировать не получается - в таблице несколько записей по одному дню !
Может быть можно как то получить дату проводки (операции), что бы потом можно было свернуть?

В твоём запросе не заданы секции СубконтоДт и СубконтоКт. Кредитовые субконто ты ограничиваешь явно, а дебетовые - нет. Соответственно, результат у тебя получается развёрнутым по дебетовым субконто. А т.к. в списке выходных полей эти самые субконто у тебя не указаны, получается то, что получается.  Подмигивание
Код
Выбрать все
| $БИОборотыДтКт.Основной(:НачДата, :КонДата~, День,,((СчетКт=:СчКт) AND (СубконтоКт1=:ВНоменклатуры) AND (СубконтоКт2=:СтавкаНДС)), БезСубконто ) As ОсновнойОборотыДтКт
 

  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #71 - 16. Марта 2007 :: 14:40
Печать  
RuporAbsurda писал(а) 16. Марта 2007 :: 14:34:
ОК
так получилось:

Перечитай доку. При правильно заданных параметрах внешняя группировка тебе не понадобится.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #72 - 19. Марта 2007 :: 11:59
Печать  
V2.

Добавлена возможность отбора по группам счетов.
Переписана поддержка механизма отборов по счетам.
Изменён состав параметров ВТ. Теперь он более восьмёроподобный.

Подробности - в описании.
Поставляется AS IS. Batteries not included.  Braincell on vacation. Улыбка

Файл в репозитарии.
« Последняя редакция: 14. Июня 2007 :: 10:28 - berezdetsky »  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #73 - 22. Марта 2007 :: 07:23
Печать  
|SELECT
| Жур.IdDoc AS [Док $Документ.ПоступлениеТоваров],
| SUM($ДкТОВСт.Всего)  AS Всего
| FROM
|_1SJourn as Жур (nolock)
|, $Документ.ПоступлениеТоваров AS ДкТОВ
|,$ДокументСтроки.ПоступлениеТоваров AS ДкТОВСт
|,(
|SELECT
|ОсновнойОстатки.Субконто2 AS  Субконто2
|, ОсновнойОстатки.Субконто2_вид
|, ОсновнойОстатки.СуммаОстатокКт AS Остаток
|FROM $БИОстатки.Основной(:Дата01~,,((Счет=:Счет) AND (Субконто1=:ВКонтрагент)),) AS ОсновнойОстатки            
|) AS Подзапрос
|WHERE
|(Жур.IsMark  =0) AND  (Жур.Closed & 1 =1)   AND      (Жур.Date_Time_IDDoc BETWEEN :Дата02 AND :Дата01~)
|AND (Жур.IdDoc =ДкТОВ.IdDoc) AND (ДкТОВ.IdDoc  =ДкТОВСт.IdDoc) AND (Жур.IDDocDef = $ВидДокумента.ПоступлениеТоваров)
|AND  ($ДкТОВ.Контрагент=:ВКонтрагент)
|AND  (Жур.IdDoc=Подзапрос.Субконто2)
|GROUP BY  Жур.IdDoc
|";      
Пытаюсь выбрать документы Жур.IdDoc=Подзапрос.Субконто2, где Подзапрос.Субконто2 - это документ поступление товаров.  Выдается пустое значение. Нужно каким то образом получить IDdoc Подзапрос.Субконто2. А как?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #74 - 22. Марта 2007 :: 09:21
Печать  
RuporAbsurda писал(а) 22. Марта 2007 :: 07:23:
Пытаюсь выбрать документы Жур.IdDoc=Подзапрос.Субконто2, где Подзапрос.Субконто2 - это документ поступление товаров.  Выдается пустое значение. Нужно каким то образом получить IDdoc Подзапрос.Субконто2. А как?

2 варианта:
  • тип Субконто2 у тебя - Документ (а не Документ.ПоступлениеТоваров).
    Условие должно быть
    Код
    Выбрать все
    $ВидДокумента36.ПоступлениеТоваров + Жур.IdDoc = Подзапрос.Субконто2 
    
    
  • нужные документы не попадают в интервал
    Код
    Выбрать все
    BETWEEN :Дата02 AND :Дата01~) 
    
    

У тебя действительно в итогах по счету в Субконто2 может оказаться документ, помеченый на удаление, непроведенный, из будущего (после даты итогов) или принадлежащий контрагенту, отличному от указанного в Субконто1? Если нет, запрос можно существенно упростить.
Код
Выбрать все
SELECT ДкТОВСт.IdDoc [Док $Документ.ПоступлениеТоваров]
	, SUM($ДкТОВСт.Всего) AS Всего
FROM $БИОстатки.Основной(:Дата01 ~,
		INNER JOIN $Документ.ПоступлениеТоваров AS ДкТОВ (nolock) on ДкТОВ.IDDOC = Субконто2,
		(Счет = :Счет)
		AND (Субконто1 = :ВКонтрагент),
		(Субконто1, Субконто2)) AS ОсновнойОстатки
	INNER JOIN $ДокументСтроки.ПоступлениеТоваров AS ДкТОВСт (nolock) ON ДкТОВСт.IdDoc = ОсновнойОстатки.Субконто2
GROUP BY ДкТОВСт.IdDoc 

Здесь нужно добавить $ВидДокумента36 в соответствующих местах, если тип Субконто2 = Документ.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #75 - 22. Марта 2007 :: 09:46
Печать  
Да спасибо. Все работает.
А где бы узнать про $ВидДокумента36 и может есть какие нибудь другие виды, а то тыкаюсь как слепой щенок. Дайте пожалуйста ссылочку, где почитать можно. Улыбка
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #76 - 22. Марта 2007 :: 09:50
Печать  
RuporAbsurda писал(а) 22. Марта 2007 :: 09:46:
Дайте пожалуйста ссылочку, где почитать можно. Улыбка

http://www.1cpp.ru/docum/html/ODBC.html
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #77 - 22. Марта 2007 :: 09:52
Печать  
Спасибо.
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #78 - 29. Мая 2007 :: 08:09
Печать  
нужно вытащить только последний документ оплаты
таким запросом
|SELECT
|ОсновнойОборотыДтКт.СубконтоКт1 [СубконтоКт1 $Субконто]                  
|, ОсновнойОборотыДтКт.СубконтоКт1_вид                  
|,right(ПозицияДокумента, 9) AS [Док $Документ]
|, ВидДокумента Док_вид
|, SUM(ОсновнойОборотыДтКт.СуммаОборот)      AS Оплата      
|FROM $БИОборотыДтКт.Основной(:Дата01, :Дата02 ~,Документ,,((СчетКт IN (SELECT val FROM #accs)) AND (СубконтоКт1 IN (SELECT val FROM #kontr)) ))AS ОсновнойОборотыДтКт                  
|GROUP BY
| ОсновнойОборотыДтКт.СубконтоКт1
|, ОсновнойОборотыДтКт.СубконтоКт1_вид      
|,right(ПозицияДокумента, 9)
|, ВидДокумента
|";      

выводятся все документы за период. Помогите! Как выбрать только последний документ?
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #79 - 29. Мая 2007 :: 08:12
Печать  
Документ определенного вида?
  
Наверх
ICQ  
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #80 - 29. Мая 2007 :: 08:36
Печать  
Да Выписка
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #81 - 29. Мая 2007 :: 08:37
Печать  
IMHO, эффективнее будет обратиться непосредственно к таблице проводок.
Что-то вроде

Код
Выбрать все
select ktsc1, max(date_time_docid)
from _1sentry(nolock)
where ...
group by ktsc1 



А суммы считать для уже отобранных документов.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #82 - 29. Мая 2007 :: 08:51
Печать  
RuporAbsurda писал(а) 29. Мая 2007 :: 08:36:
Да Выписка

Ну если выписка то получаем последний проведенный документ

ТекстЗапроса = "
|SELECT
| TOP 1
|  Жур.IDDoc as [Док $Документ],
|  Жур.IDDocDef as Док_вид,
|  CAST(LEFT(Жур.Date_Time_IDDoc, 8) as DateTime) as ДатаДок,
|  $Док.Контрагент as [Контрагент $Справочник]
|FROM
|  _1SJourn Жур
|INNER JOIN
|  $Документ.Выписка as Док ON Док.IDDoc = Жур.IDDoc
|WHERE
|  Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ AND
|  Жур.IDDocDef = $ВидДокумента.Выписка AND
|  Жур.Closed & 1 = 1
Order by Жур.Date_Time_IDDoc desc";

Ну  и где нибудь здесь ещё упомянуть _1SENTRY, Улыбка а AccautRecordSet здесь использовать перебор
  
Наверх
ICQ  
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #83 - 29. Мая 2007 :: 08:52
Печать  
Как я понимаю ktsc1 - это одно из полей  таблицы _1sentry. А где взять описание всех полей таблицы _1sentry (т.е. какие данные в каком поле содержатся)?
Нашел
1SENTRY      Проводки
Row_Id      Ид строки
DocId      Ид документа
Number      Номер проводки
CorNo      Номер корресподенции (?)
Date_Time_DocId      Дата, Время, Ид документа
AccDtId      Ид счета дебета
AccKtId      Ид счета кредита
Sum_      Сумма проводки
CurrId      Ид валюты
CurSum      Валютная сумма проводки
Amount      Составная сумма (?) проводки
ProvKind      Тип проводки (?)
DtFlags      Флаги дебета
KtFlags      Флаги кредита
DocLineNo      Номер строки документа
PlanId      Ид плана счетов
SPnnn      Параметр nnn
DTSCn      Субконто n дебета
VDTSCn      (?) Субконто n дебета
ODTSCn      (?) Субконто n дебета
KTSCn      Субконто n кредита
VKTSCn      (?) Субконто n кредита
OKTSCn      (?) Субконто n кредита
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #84 - 29. Мая 2007 :: 08:59
Печать  
Почитай файл 1Cv7.DDS, в каталоге БД Улыбка
  
Наверх
ICQ  
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #85 - 29. Мая 2007 :: 09:25
Печать  
Вырисовывается такой запрос, только вот как задать типизацию документа?
|SELECT
|  Проводки.ktsc1 AS [Контрагент $Справочник.Контрагенты],
|  right(max(Проводки.date_time_docid),9) AS [Док $Документ]
|FROM
|  _1sentry AS Проводки (nolock)
|WHERE
|  Проводки.accktid IN (SELECT val FROM #accs) AND
|  Проводки.KTSC1 IN (SELECT val FROM #kontr)  AND
|  Проводки.date_time_docid between :Дата01 and :Дата02~
|GROUP BY
|  Проводки.ktsc1
|";
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #86 - 29. Мая 2007 :: 09:38
Печать  
Про типизацию читай справку в разделе учебник, там вё написано:
        Для типизации документа по полю IDDoc необходимо, чтобы в выборке присутствовало поле содержащее IDDocDef с именем <ИмяПоляIDDoc>_вид, в нашем случае это будет Док_вид. Для полей, которые содержат реквизит типа “Документ” вспомогательного поля не требуется.
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #87 - 29. Мая 2007 :: 09:39
Печать  
Хорошее описание _1sentry есть на сайте у toypaul и в доке на toysql.

Типизация документа:
Код
Выбрать все
selet ...
    , iddocdef Док_вид
from _1sentry(nolock)
    inner join _1sjourn(nolock) on date_time_docid = date_time_iddoc
... 

Улыбка
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #88 - 29. Мая 2007 :: 11:34
Печать  
Не могу понять в чем дело. В результате запроса в документах несоответсвие Контрагентам. Т.е. если в результате показывает Контрагент "A" в документе Выписка - то в этой выписке контрагента "A" нет???
|SELECT
|  Проводки.ktsc1 AS [Контрагент $Справочник.Контрагенты],
|  right(Проводки.date_time_docid,9) AS [Док $Документ]
|, жур.iddocdef Док_вид
|FROM
|  _1sentry AS Проводки (nolock)
|  inner join _1sjourn AS жур (nolock) ON Проводки.date_time_docid = жур.date_time_iddoc
|WHERE
|  Проводки.accktid IN (SELECT val FROM #accs) AND
|  ((Проводки.AccDtId IN (SELECT val FROM #accsd01)) OR (Проводки.AccDtId IN (SELECT val FROM #accsd02))) AND
|  Проводки.KTSC1 IN (SELECT val FROM #kontr)  AND
|  Проводки.date_time_docid between :Дата01 and :Дата02~
|GROUP BY
|  Проводки.ktsc1
| ,right(Проводки.date_time_docid,9)
|, жур.iddocdef
|";
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #89 - 29. Мая 2007 :: 11:50
Печать  
Это я тебя запутал чуть выше по топику Смущённый. Субконто нумеруются с 0. Т.е. СубконтоКт1 хранится в поле KTSC0. Также здесь нет проверки на вид субконто (хранится, соответственно, в VKTSC0). И не забывай про поле ACTIVE, иначе в отчет попадут непроведённые документы.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #90 - 30. Мая 2007 :: 07:33
Печать  
Еще одна непонятка. В запросе
|SELECT
|  Проводки.ktsc0 AS [Контрагент $Справочник.Контрагенты],
|  right(max(Проводки.date_time_docid),9) AS [Док $Документ]
|, жур.iddocdef Док_вид
|,Проводки.SUM_ AS СуммаОплаты
|FROM
|  _1sentry AS Проводки (nolock)
|  inner join _1sjourn AS жур (nolock) ON Проводки.date_time_docid = жур.date_time_iddoc
|WHERE
|  Проводки.accktid IN (SELECT val FROM #accs) AND
|  ((Проводки.AccDtId IN (SELECT val FROM #accsd01)) OR (Проводки.AccDtId IN (SELECT val FROM #accsd02))) AND
|  Проводки.KTSC0 IN (SELECT val FROM #kontr)  AND
|  Проводки.ACTIVE=0 AND
|  Проводки.date_time_docid between :Дата01 and :Дата02~
|GROUP BY
|  Проводки.ktsc0
|, жур.iddocdef
|,Проводки.SUM_
|";

Если подставить SUM (Проводки.SUM_)  вместо Проводки.SUM_  выдаются какие то не реальные цифры???
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #91 - 30. Мая 2007 :: 08:05
Печать  
А зачем ты группируешь по сумме?
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #92 - 30. Мая 2007 :: 08:07
Печать  
RuporAbsurda писал(а) 30. Мая 2007 :: 07:33:
Еще одна непонятка. В запросе
|SELECT
|  Проводки.ktsc0 AS [Контрагент $Справочник.Контрагенты],
|  right(max(Проводки.date_time_docid),9) AS [Док $Документ]
|, жур.iddocdef Док_вид
|,SUM(Проводки.SUM_) AS СуммаОплаты
|FROM
|  _1sentry AS Проводки (nolock)
|  inner join _1sjourn AS жур (nolock) ON Проводки.date_time_docid = жур.date_time_iddoc
|WHERE
|  Проводки.accktid IN (SELECT val FROM #accs) AND
|  ((Проводки.AccDtId IN (SELECT val FROM #accsd01)) OR (Проводки.AccDtId IN (SELECT val FROM #accsd02))) AND
|  Проводки.KTSC0 IN (SELECT val FROM #kontr)  AND
|  Проводки.ACTIVE=0 AND
|  Проводки.date_time_docid between :Дата01 and :Дата02~
|GROUP BY
|  Проводки.ktsc0
|, жур.iddocdef
|";

Если подставить SUM (Проводки.SUM_)  вместо Проводки.SUM_  выдаются какие то не реальные цифры???


Попробуй так
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #93 - 30. Мая 2007 :: 08:32
Печать  
RuporAbsurda писал(а) 30. Мая 2007 :: 07:33:
Если подставить SUM (Проводки.SUM_)  вместо Проводки.SUM_  выдаются какие то не реальные цифры???

Так ты документ берёшь последний, а сумму считаешь по всем.  Подмигивание
И текстовое поле (ACTIVE = char(1)) сравнивать с числом я бы не стал..
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #94 - 30. Мая 2007 :: 09:01
Печать  
Да действительно с ACTIVE нехорошо получилось. Попробую написать ACTIVE=''
А вообще назначение этого поля как то туманно. Если документ не проведен есть ли тогда запись в _1sentry ?
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #95 - 30. Мая 2007 :: 09:04
Печать  
Бывают проводки выключены Улыбка То есть документ проведен, у него есть проводки но они выключены Улыбка
  
Наверх
ICQ  
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #96 - 30. Мая 2007 :: 09:22
Печать  
Логично.
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #97 - 01. Июня 2007 :: 05:42
Печать  
Еще один косяк в запросе
|SELECT
|  Проводки.ktsc0 AS [Контрагент $Справочник.Контрагенты],
|  right(max(Проводки.date_time_docid),9) AS [Док $Документ]
|, жур.iddocdef Док_вид
|,Проводки.SUM_ AS СуммаОплаты
|FROM
|  _1sentry AS Проводки (nolock)
|  inner join _1sjourn AS жур (nolock) ON Проводки.date_time_docid = жур.date_time_iddoc
|WHERE
|  Проводки.accktid IN (SELECT val FROM #accs) AND
|  ((Проводки.AccDtId IN (SELECT val FROM #accsd01)) OR (Проводки.AccDtId IN (SELECT val FROM #accsd02))) AND
|  Проводки.KTSC0 IN (SELECT val FROM #kontr)  AND
|  Проводки.ACTIVE='' AND
|  Проводки.date_time_docid between :Дата01 and :Дата02~
|GROUP BY
|  Проводки.ktsc0
|, жур.iddocdef
|,Проводки.SUM_
|";

Если в одном и том же документе например в Выписке есть несколько проводок по одной фирме, то берется только первая! А нужно все отобрать, которые есть в документе!!!
  
Наверх
 
IP записан
 
TalB
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 16
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #98 - 01. Июня 2007 :: 06:44
Печать  
Active = ' ' (' ' = пробел) при включенной проводке, Active = '*' при выключенной проводке
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #99 - 01. Июня 2007 :: 06:47
Печать  
Какая задача в итоге? Данный запрос возвращает все проводки за указанное время, ао указанным счетам.
Тебе нужны все проводки построчно, или их сумма?
  
Наверх
ICQ  
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #100 - 01. Июня 2007 :: 06:53
Печать  
Задача выдать менеджерам последний документ оплаты и последнюю сумму оплаты.
Этим запросом как раз и выводятся последние документы Выписка и ПриходныйОрдер, но если в выписке несколько записей по одному клиенту, то выводится только первая. Научить бухов делать одну запись по одному клиенту в одном документе н! е! р! е! а! л! ь! н! о!!! Плачущий
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #101 - 01. Июня 2007 :: 07:09
Печать  
"|SELECT
|  Проводки.ktsc0 AS [Контрагент $Справочник.Контрагенты],
|  right(max(Проводки.date_time_docid),9) AS [Док $Документ]
|, жур.iddocdef Док_вид
|,SUM(Проводки.SUM_ AS) СуммаОплаты
|FROM
|  _1sentry AS Проводки (nolock)
|  inner join _1sjourn AS жур (nolock) ON Проводки.date_time_docid = жур.date_time_iddoc
|WHERE
|  Проводки.accktid IN (SELECT val FROM #accs) AND
|  ((Проводки.AccDtId IN (SELECT val FROM #accsd01)) OR (Проводки.AccDtId IN (SELECT val FROM #accsd02))) AND
|  Проводки.KTSC0 IN (SELECT val FROM #kontr)  AND
|  Проводки.ACTIVE='' AND
|  Проводки.date_time_docid between :Дата01 and :Дата02~
|GROUP BY
|  Проводки.ktsc0
|, жур.iddocdef
|";

Попробуй так
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #102 - 01. Июня 2007 :: 07:11
Печать  
Последний за день?

Я тогда бы не запорачивался с 1с++ а просто исользовал ОбратныйПорядок
  
Наверх
ICQ  
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #103 - 01. Июня 2007 :: 07:20
Печать  
Это уже было.
berezdetsky писал(а) 30. Мая 2007 :: 08:32:
RuporAbsurda писал(а) 30. Мая 2007 :: 07:33:
Если подставить SUM (Проводки.SUM_)  вместо Проводки.SUM_  выдаются какие то не реальные цифры???

Так ты документ берёшь последний, а сумму считаешь по всем.  Подмигивание
И текстовое поле (ACTIVE = char(1)) сравнивать с числом я бы не стал..

А обратный порядок слишком медленно, контрагентов много нужно за раз вывести.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #104 - 01. Июня 2007 :: 07:25
Печать  
Тогда так:
"|SELECT
|  Проводки.ktsc0 AS [Контрагент $Справочник.Контрагенты],
|  right(max(Проводки.date_time_docid),9) AS [Док $Документ]
|, жур.iddocdef Док_вид
|,SUM(Проводки.SUM_ AS) СуммаОплаты
|FROM
|  _1sentry AS Проводки (nolock)
|  inner join _1sjourn AS жур (nolock) ON Проводки.date_time_docid = жур.date_time_iddoc
|WHERE
|  Проводки.accktid IN (SELECT val FROM #accs) AND
|  ((Проводки.AccDtId IN (SELECT val FROM #accsd01)) OR (Проводки.AccDtId IN (SELECT val FROM #accsd02))) AND
|  Проводки.KTSC0 IN (SELECT val FROM #kontr)  AND
|  Проводки.ACTIVE='' AND
|  Проводки.date_time_docid between :Дата01 and :Дата02~
|GROUP BY
|  Проводки.ktsc0
|, жур.iddocdef
| ,Проводки.date_time_docid
|";

Попробуй так [/quote]
  
Наверх
ICQ  
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #105 - 01. Июня 2007 :: 07:45
Печать  
YES! Спасибо  Смех
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #106 - 01. Июня 2007 :: 07:47
Печать  
RuporAbsurda писал(а) 01. Июня 2007 :: 07:45:
YES! Спасибо  Смех

Учите SQL
  
Наверх
ICQ  
IP записан
 
Ronny
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 01. Июня 2007
Re: Прямые запросы к бухгалтерским итогам
Ответ #107 - 01. Июня 2007 :: 08:57
Печать  
Смущённый
Имеется:
Код
Выбрать все
СтрокаУсловия = "(Счет IN (Select Val from #ВыбСчет))";
ТекстЗапроса = "SELECT ОсновнойОстатки.Счет [Счет $Счет.Основной],
  | ОсновнойОстатки.Валюта [Валюта $Справочник.Валюты]";
Для Инд = 1 По КоличествоСубконто Цикл
  Если Сч.ТолькоОбороты(Инд,) = 0 Тогда
    Если Инд = 1 Тогда
	ТекстЗапроса = ТекстЗапроса +
	"ОсновнойОстатки.Субконто1 [Субконто1 $Субконто],
	| ОсновнойОстатки.Субконто1_вид";
	СпСубк.ДобавитьЗначение(1);
	СтрокаУсл2 = СтрокаУсл2 + Сч.ВидСубконто(1)+", ";
    ИначеЕсли Инд = 2 Тогда
	ТекстЗапроса = ТекстЗапроса +
	"ОсновнойОстатки.Субконто2 [Субконто2 $Субконто],
	| ОсновнойОстатки.Субконто2_вид";
	СпСубк.ДобавитьЗначение(2);
	СтрокаУсл2 = СтрокаУсл2 + Сч.ВидСубконто(2)+", ";
    ИначеЕсли Инд = 3 Тогда
	ТекстЗапроса = ТекстЗапроса +
	"ОсновнойОстатки.Субконто3 [Субконто3 $Субконто],
	| ОсновнойОстатки.Субконто3_вид";
	СпСубк.ДобавитьЗначение(3);
	СтрокаУсл2 = СтрокаУсл2 + Сч.ВидСубконто(3)+", ";
    ИначеЕсли Инд = 4 Тогда
	ТекстЗапроса = ТекстЗапроса +
	"ОсновнойОстатки.Субконто4 [Субконто4 $Субконто],
	| ОсновнойОстатки.Субконто4_вид";
	СпСубк.ДобавитьЗначение(4);
	СтрокаУсл2 = СтрокаУсл2 + Сч.ВидСубконто(4)+", ";
    ИначеЕсли Инд = 5 Тогда
	ТекстЗапроса = ТекстЗапроса +
	"ОсновнойОстатки.Субконто5 [Субконто5 $Субконто],
	| ОсновнойОстатки.Субконто5_вид";
	СпСубк.ДобавитьЗначение(5);
	СтрокаУсл2 = СтрокаУсл2 + Сч.ВидСубконто(5)+", ";
    КонецЕсли;
  КонецЕсли;
КонецЦикла;
СтрокаУсл2 = Сред(СтрокаУсл2,1,СтрДлина(СтрокаУсл2)-2);
ТекстЗапроса = ТекстЗапроса +
"ОсновнойОстатки.СуммаОстатокДт,
| ОсновнойОстатки.СуммаОстатокКт,
| ОсновнойОстатки.ВалютнаяСуммаОстатокДт,
| ОсновнойОстатки.ВалютнаяСуммаОстатокКт
|FROM $БИОстатки.Основной(:ВыбДата, , " + СтрокаУсловия + ", ("+СтрокаУсл2+")) AS ОсновнойОстатки
|	LEFT OUTER JOIN _1SACCS AS ПланСчетов (NOLOCK) ON ОсновнойОстатки.Счет = ПланСчетов.ID
|ORDER BY ПланСчетов.SCHKOD";
SQLSession.ВыполнитьИнструкцию(ТекстЗапроса, ТЗБИт); 



Выдает: В метод необходимо передавать непустые объекты типа метаданных
СубконтоИд = мд.ИдОбъекта(Метаданные.ВидСубконто(с)); AccountsRecordset.ert
И что ему не нравится? Поможите плиз, кто могет! Осваиваю 1С++ 2-й день
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #108 - 01. Июня 2007 :: 09:08
Печать  
Давно, нет точнее ни когда не видел на этом форуме такого! Улыбка
Для начало оптимизируй цикл Улыбка, или вообще его убери
  
Наверх
ICQ  
IP записан
 
Ronny
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 01. Июня 2007
Re: Прямые запросы к бухгалтерским итогам
Ответ #109 - 01. Июня 2007 :: 09:12
Печать  
Необходимо добавить разрезы по субконто (КРОМЕ оборотных), которых может быть от 1 до 5 вот и добавляется цикл с условием на проверку, хотя можно сделать и "Субконто"+Инд. Но сути это не меняет Счет все равно один, но произвольный!
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #110 - 01. Июня 2007 :: 09:18
Печать  
То есть ты не видишь разницы:
твой вариант:

для к = 1 по 5 цикл
   если условие тогда
       если к = 1 тогда
           Текст = Текст+ "1"
       конецесли

       если к = 2 тогда
           Текст = Текст+ "2"
       конецесли

       если к = 3 тогда
           Текст = Текст+ "3"
       конецесли

       если к = 4 тогда
           Текст = Текст+ "4"
       конецесли

       если к =5 тогда
           Текст = Текст+ "5"
       конецесли

   конецесли
конеццикла

и  Такой вариант:

для к = 1 по 5 цикл
   если условие тогда

           Текст = Текст+ Строка(к)

   конецесли
конеццикла
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #111 - 01. Июня 2007 :: 09:20
Печать  
А по поводу ошибки включи отладку и посмотри итоговый текст запроса так проще будет
  
Наверх
ICQ  
IP записан
 
Ronny
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 01. Июня 2007
Re: Прямые запросы к бухгалтерским итогам
Ответ #112 - 01. Июня 2007 :: 09:21
Печать  
Ronny писал(а) 01. Июня 2007 :: 09:12:
хотя можно сделать и "Субконто"+Инд.


Красивей твой вариант! Но не работают оба! Смущённый За 3 рабочих часа перепробовал много конструкций  Нерешительный
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #113 - 01. Июня 2007 :: 10:06
Печать  
Ronny
При таком способе формирования у тебя в СтрокаУсл2 получится список представлений (синонимов) видов субконто, а должен быть список идентификаторов.
Код
Выбрать все
СтрокаУсл2 = СтрокаУсл2 + Сч.ВидСубконто(х).Идентификатор() + ", "; 

  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #114 - 01. Июня 2007 :: 10:10
Печать  
И не раскрыта тема значения переменной КоличествоСубконто в Цитата:
Для Инд = 1 По КоличествоСубконто Цикл

Должно быть
Код
Выбрать все
КоличествоСубконто = Сч.КоличествоСубконто(); 

  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Ronny
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 01. Июня 2007
Re: Прямые запросы к бухгалтерским итогам
Ответ #115 - 01. Июня 2007 :: 10:13
Печать  
berezdetsky писал(а) 01. Июня 2007 :: 10:06:
Ronny
При таком способе формирования у тебя в СтрокаУсл2 получится список представлений (синонимов) видов субконто, а должен быть список идентификаторов.
Код
Выбрать все
СтрокаУсл2 = СтрокаУсл2 + Сч.ВидСубконто(х).Идентификатор() + ", "; 


В этом то и была проблема! Прошляпил Смущённый
  
Наверх
 
IP записан
 
x-pert
1c++ developer
Отсутствует



Сообщений: 134
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #116 - 04. Июня 2007 :: 05:38
Печать  
RuporAbsurda писал(а) 01. Июня 2007 :: 06:53:
Научить бухов делать одну запись по одному клиенту в одном документе н! е! р! е! а! л! ь! н! о!!! Плачущий

А зачем их учить этому? Ты просто позаботься, чтобы по-другому у них не получалось.
  
Наверх
 
IP записан
 
idw
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 29
Зарегистрирован: 08. Июня 2007
Re: Прямые запросы к бухгалтерским итогам
Ответ #117 - 08. Июня 2007 :: 12:05
Печать  
Подскажите пожалуйста как можно отсортировать по субконто1 в данном запросе:

Код
Выбрать все
ТекстЗапроса = "
	|SELECT ОсновнойОстатки.Счет [Счет $Счет.Основной]
	|		, ОсновнойОстатки.Субконто1 [Субконто1 $Субконто]
	|		, ОсновнойОстатки.Субконто1_вид
	|		, ОсновнойОстатки.Субконто2 [Субконто2 $Субконто]
	|		, ОсновнойОстатки.Субконто2_вид
	|		, ОсновнойОстатки.КоличествоОстатокДт
	|		, ОсновнойОстатки.КоличествоОстатокКт
	|FROM $БИОстатки.Основной(:КонДата,,
	|			(Счет = :ВыбСчет),
	|			(Номенклатура, Склады),
	|			(РазделительУчета = :РазделительУчета)) AS ОсновнойОстатки
	|INNER JOIN _1SACCS AS ПланСчетов (NOLOCK) ON ОсновнойОстатки.Счет = ПланСчетов.ID  
	|ORDER BY ПланСчетов.SCHKOD";
	 

  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #118 - 08. Июня 2007 :: 13:45
Печать  
idw писал(а) 08. Июня 2007 :: 12:05:
Подскажите пожалуйста как можно отсортировать по субконто1 в данном запросе:
...

Добавь в секцию FROM таблицу, соответствующую типу значения этого вида субконто и в секцию ORDER BY поле, по которому хочешь отсортировать.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
idw
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 29
Зарегистрирован: 08. Июня 2007
Re: Прямые запросы к бухгалтерским итогам
Ответ #119 - 09. Июня 2007 :: 07:26
Печать  
berezdetsky писал(а) 08. Июня 2007 :: 13:45:
Добавь в секцию FROM таблицу, соответствующую типу значения этого вида субконто и в секцию ORDER BY поле, по которому хочешь отсортировать.


А нельзя разве сделать по ОсновнойОстатки.Субконто1.Код?

Добавил, но не работает.  Печаль

Код
Выбрать все
	|FROM $БИОстатки.Основной(:КонДата,,
	|			(Счет = :ВыбСчет),
	|			(Номенклатура, Склады),
	|			(РазделительУчета = :РазделительУчета)) AS ОсновнойОстатки
	|     $Справочник.Номенклатура as СпрНом
	|INNER JOIN _1SACCS AS ПланСчетов (NOLOCK) ON ОсновнойОстатки.Счет = ПланСчетов.ID  
	|ORDER BY СпрНом.Code";
 



Получаю вот эту ошибку:

ТЗ = Ит.ВыполнитьИнструкцию(ТекстЗапроса);
{\\ADPHOST2\BASES1C\REMONT_COPY\EXTFORMS\ОСТАТКИНАПРИЕМКЕ.ERT(94)}: State 42000, native 102, message [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near 'sc24'.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #120 - 09. Июня 2007 :: 07:31
Печать  
idw писал(а) 09. Июня 2007 :: 07:26:
berezdetsky писал(а) 08. Июня 2007 :: 13:45:
Добавь в секцию FROM таблицу, соответствующую типу значения этого вида субконто и в секцию ORDER BY поле, по которому хочешь отсортировать.


А нельзя разве сделать по ОсновнойОстатки.Субконто1.Код?

Добавил, но не работает.  Печаль

Код
Выбрать все
	|FROM $БИОстатки.Основной(:КонДата,,
	|			(Счет = :ВыбСчет),
	|			(Номенклатура, Склады),
	|			(РазделительУчета = :РазделительУчета)) AS ОсновнойОстатки
	|     $Справочник.Номенклатура as СпрНом
	|INNER JOIN _1SACCS AS ПланСчетов (NOLOCK) ON ОсновнойОстатки.Счет = ПланСчетов.ID  
	|ORDER BY СпрНом.Код";
 



Получаю вот эту ошибку:

ТЗ = Ит.ВыполнитьИнструкцию(ТекстЗапроса);
{\\ADPHOST2\BASES1C\REMONT_COPY\EXTFORMS\ОСТАТКИНАПРИЕМКЕ.ERT(94)}: State 42000, native 102, message [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near 'sc24'.


А с запятыми там всё в порядке?
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #121 - 09. Июня 2007 :: 07:34
Печать  
Ну и кроме того в как у тебя справочник номенклатура связан с остальным запросом? Или ты хочешь полное декартовое произведение получить? Улыбка Если я ни чего в терминологии не путаю
  
Наверх
ICQ  
IP записан
 
idw
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 29
Зарегистрирован: 08. Июня 2007
Re: Прямые запросы к бухгалтерским итогам
Ответ #122 - 09. Июня 2007 :: 08:24
Печать  
Я хочу только сортировку по субконто (справочник Номенклатура) сделать. С запятыми в порядке.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #123 - 09. Июня 2007 :: 08:38
Печать  
idw писал(а) 09. Июня 2007 :: 08:24:
Я хочу только сортировку по субконто (справочник Номенклатура) сделать. С запятыми в порядке.


Ну что тебе сказать Печаль. Начни с малого. Почитай раздел учебник в спрвке по 1с++. Там довольно не плохо всё написанно. Потом надо поять как работают SQL запросы
Select * from Таблица1, Таблица2 - что должен вернуть такой запрос? Посмотри геде тут стоит запятая и почему у тебя её нет в запросе? И откуда MS SQL знать какому полю таблицы соответствует поле Код? Тогда уж Code...
  
Наверх
ICQ  
IP записан
 
idw
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 29
Зарегистрирован: 08. Июня 2007
Re: Прямые запросы к бухгалтерским итогам
Ответ #124 - 09. Июня 2007 :: 09:38
Печать  
Читал. Только зачем добавлять еще одну таблицу, чтобы отсортировать данные в другой?
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #125 - 09. Июня 2007 :: 09:46
Печать  
А у тебя есть данные по которым ты хочешь сортировать в этой таблице?
  
Наверх
ICQ  
IP записан
 
idw
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 29
Зарегистрирован: 08. Июня 2007
Re: Прямые запросы к бухгалтерским итогам
Ответ #126 - 09. Июня 2007 :: 09:52
Печать  
Код
Выбрать все
ТекстЗапроса = "
	|SELECT ОсновнойОстатки.Счет [Счет $Счет.Основной]
	|		, ОсновнойОстатки.Субконто1 [Субконто1 $Субконто]
	|		, ОсновнойОстатки.Субконто1_вид
	|		, ОсновнойОстатки.Субконто2 [Субконто2 $Субконто]
	|		, ОсновнойОстатки.Субконто2_вид
	|		, ОсновнойОстатки.КоличествоОстатокДт
	|		, ОсновнойОстатки.КоличествоОстатокКт
	|FROM $БИОстатки.Основной(:КонДата,,
	|			(Счет = :ВыбСчет),
	|			(Номенклатура, Склады),
	|			(РазделительУчета = :РазделительУчета)) AS ОсновнойОстатки
	|INNER JOIN _1SACCS AS ПланСчетов (NOLOCK) ON ОсновнойОстатки.Счет = ПланСчетов.ID
	|ORDER BY ПланСчетов.SCHKOD";
	  



А Субконто1 в запросе?
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #127 - 09. Июня 2007 :: 09:55
Печать  
Как ты думаешь в каком виде хранится субконтов таблице БД? Прочти чтонить про реляционные базы данных чтоли
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #128 - 09. Июня 2007 :: 09:56
Печать  
т. е. тебе конечно ни чего не мешает отсортировать по этому полю но сортируй уже тогда в ТЗ в 1С
  
Наверх
ICQ  
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #129 - 09. Июня 2007 :: 12:14
Печать  
     $БИОстатки.<ПланСчетов>(<ГраницаРасчета>, <Соединение>, <Условие>, <Субконто>) AS <Алиас>

<ГраницаРасчета> - как сделать границей расчета текущий документ?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #130 - 11. Июня 2007 :: 07:56
Печать  
RuporAbsurda писал(а) 09. Июня 2007 :: 12:14:
<ГраницаРасчета> - как сделать границей расчета текущий документ?

Задумывалось - так же, как и в стандартных ВТ 1С++.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
idw
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 29
Зарегистрирован: 08. Июня 2007
Re: Прямые запросы к бухгалтерским итогам
Ответ #131 - 13. Июня 2007 :: 05:45
Печать  
Nick писал(а) 09. Июня 2007 :: 09:55:
Как ты думаешь в каком виде хранится субконтов таблице БД? Прочти чтонить про реляционные базы данных чтоли


А где можно почитать в каком виде хранится субконто в базе 1С? Кроме 1Cv7.DDS. Там я не нашел.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #132 - 13. Июня 2007 :: 05:56
Печать  
idw писал(а) 13. Июня 2007 :: 05:45:
Nick писал(а) 09. Июня 2007 :: 09:55:
Как ты думаешь в каком виде хранится субконтов таблице БД? Прочти чтонить про реляционные базы данных чтоли


А где можно почитать в каком виде хранится субконто в базе 1С? Кроме 1Cv7.DDS. Там я не нашел.


А просто посмотреть в таблице поле которое ты используешь в запросе не судьба?
  
Наверх
ICQ  
IP записан
 
idw
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 29
Зарегистрирован: 08. Июня 2007
Re: Прямые запросы к бухгалтерским итогам
Ответ #133 - 13. Июня 2007 :: 05:59
Печать  
Если бы я знал, то посмотрел бы. Оказать помощь не судьба?
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #134 - 13. Июня 2007 :: 06:07
Печать  
idw писал(а) 13. Июня 2007 :: 05:59:
Если бы я знал, то посмотрел бы. Оказать помощь не судьба?


Не понял. Открываешь Enerprice Manager, выбираешь базу данных, находишь табличку которую используешь в запросе. правой кнопкой по табличке пункт меню Open Table\Return Top и смотришь.

А увидишб ты там уникальный идентификатор этого субконто, соответственно отсортировать по нему можно
но для пользователя это бессмыслено!
  
Наверх
ICQ  
IP записан
 
idw
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 29
Зарегистрирован: 08. Июня 2007
Re: Прямые запросы к бухгалтерским итогам
Ответ #135 - 13. Июня 2007 :: 06:20
Печать  
Спасибо
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #136 - 13. Июня 2007 :: 06:27
Печать  
berezdetsky писал(а) 11. Июня 2007 :: 07:56:
Задумывалось - так же, как и в стандартных ВТ 1С++.


А именно? Можно примерчик.
  
Наверх
 
IP записан
 
vlad-1c
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 09. Июля 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #137 - 13. Июня 2007 :: 07:14
Печать  
RuporAbsurda писал(а) 13. Июня 2007 :: 06:27:
berezdetsky писал(а) 11. Июня 2007 :: 07:56:
Задумывалось - так же, как и в стандартных ВТ 1С++.


А именно? Можно примерчик.

ARS = СоздатьОбъект("AccountsRecordSet");
ARS.УстановитьТекстовыйПараметр("ВыбДата", СформироватьПозициюДокумента(ВыбДоговорСтрахования,-1));
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #138 - 13. Июня 2007 :: 08:49
Печать  
Не выходит:Syntax error converting datetime from character string

ар.УстановитьТекстовыйПараметр("ВыбДата", СформироватьПозициюДокумента(ТекущийДокумент(),-1));

...
|FROM $БИОстатки.Основной(:ВыбДата,,((Счет =:Счет) AND (Субконто1 IN (SELECT val FROM #kontr)) AND (Субконто2=:Склад)),) AS ОсновнойОстатки      
...

  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #139 - 13. Июня 2007 :: 09:08
Печать  
При передаче позиции документа нужно использовать первый модификатор.
Правила обозначения модификаторов
Код
Выбрать все
$БИОстатки.Основной(:ВыбДата ~, ... 

  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Ronny
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 01. Июня 2007
Re: Прямые запросы к бухгалтерским итогам
Ответ #140 - 13. Июня 2007 :: 09:30
Печать  
Доброго времени суток!
Есть задачка - сделать ОСВ прямыми запросами.
Из тех знаний, которыми обладаю следует, что это делается тремя запросами (НачОстатки, Обороты, КонОстатки).

Вопрос: можно ли решить задачку меньшим числом запросов? Круглые глаза
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #141 - 13. Июня 2007 :: 09:40
Печать  
Можно двумя.   Смех
КонОстатки = НачОстатки + Обороты
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Ronny
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 01. Июня 2007
Re: Прямые запросы к бухгалтерским итогам
Ответ #142 - 13. Июня 2007 :: 11:54
Печать  
Есть запрос:
Код
Выбрать все
СтрокаУсловия = "(СчетДТ IN (Select Val from #ВыбСчет)) OR (СчетКТ IN (Select Val from #ВыбСчет))";
	ТекстЗапроса = "SELECT ОсновнойОборотыДтКт.СчетДт [СчетДт $Счет.Основной],
	| ОсновнойОборотыДтКт.СчетКт [СчетКт $Счет.Основной],
	| ОсновнойОборотыДтКт.Валюта [Валюта $Справочник.Валюты],
	| ОсновнойОборотыДтКт.СуммаОборот,
	| ОсновнойОборотыДтКт.КоличествоОборот,
	| ОсновнойОборотыДтКт.ВалютнаяСуммаОборот
	|FROM $БИОборотыДтКт.Основной(:ДатаН,:ДатаК,,,"+ СтрокаУсловия +", ) AS ОсновнойОборотыДтКт
	|LEFT OUTER JOIN _1SACCS AS ПланСчетовДт (NOLOCK) ON ОсновнойОборотыДтКт.СчетДт = ПланСчетовДт.ID
	|LEFT OUTER JOIN _1SACCS AS ПланСчетовКт (NOLOCK) ON ОсновнойОборотыДтКт.СчетКт = ПланСчетовКт.ID
	|";   

     
Вешает 1С очень надолго (40 мин, дальше скидывал задачу)
Почему? Озадачен
Корректировка... Вешает только если ДатаН = НачГода
« Последняя редакция: 14. Июня 2007 :: 05:55 - Ronny »  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #143 - 14. Июня 2007 :: 10:37
Печать  
Скачай из репозитария исправленную версию. Там исправлена ошибка, связанная с OR в условии. Вероятно это твой случай.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
idw
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 29
Зарегистрирован: 08. Июня 2007
Re: Прямые запросы к бухгалтерским итогам
Ответ #144 - 15. Июня 2007 :: 09:27
Печать  
Я всё же разобрался:

Код
Выбрать все
ТекстЗапроса = "
	|SELECT ОсновнойОстатки.Счет [Счет $Счет.Основной]
	|		, ОсновнойОстатки.Субконто1 [Субконто1 $Субконто]
	|		, ОсновнойОстатки.Субконто1_вид
	|		, ОсновнойОстатки.Субконто2 [Субконто2 $Субконто]
	|		, ОсновнойОстатки.Субконто2_вид
	|		, ОсновнойОстатки.КоличествоОстатокДт
	|		, ОсновнойОстатки.КоличествоОстатокКт
	|FROM $БИОстатки.Основной(:КонДата,,
	|			(Счет = :ВыбСчет),
	|			(Номенклатура, Склады),
	|			(РазделительУчета = :РазделительУчета)) AS ОсновнойОстатки
	|INNER JOIN $Справочник.Номенклатура AS СпрНом (NOLOCK) ON ОсновнойОстатки.Субконто1 = СпрНом.ID
	|ORDER BY СпрНом.Descr";  
 



С AccountsRecordset быстрее стал отчет формироваться чем с помощью БыстрыхИтогов.
  
Наверх
 
IP записан
 
Ronny
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 01. Июня 2007
Re: Прямые запросы к бухгалтерским итогам
Ответ #145 - 21. Июня 2007 :: 05:54
Печать  
Имеется запрос:
Код
Выбрать все
SQLSession = СоздатьОбъект("AccountsRecordSet");
	SQLSession.SetDatabase1C();
	SQLSession.УстановитьТекстовыйПараметр("ВыбДата", НачМесяца(ДатаРасчета));
	SQLSession.УстановитьТекстовыйПараметр("ВыбСчет", СпСчетов);
	SQLSession.УложитьСписокОбъектов(СпСчетов, "#ВыбСчет");
	СтрокаУсловия = "(Счет IN (Select Val from #ВыбСчет))";
	ТекстЗапроса = "SELECT ОсновнойОстатки.Счет [Счет $Счет.Основной],
		| ОсновнойОстатки.Валюта [Валюта $Справочник.Валюты],
		| ОсновнойОстатки.Субконто1 [Субконто1 $Субконто],
		| ОсновнойОстатки.Субконто1_вид,
		| ОсновнойОстатки.СуммаОстатокДт,
		| ОсновнойОстатки.СуммаОстатокКт,
		| ОсновнойОстатки.ВалютнаяСуммаОстатокДт,
		| ОсновнойОстатки.ВалютнаяСуммаОстатокКт
		|FROM $БИОстатки.Основной(:ВыбДата, , " + СтрокаУсловия + ", ОсновныеСредства) AS ОсновнойОстатки
		|	INNER JOIN _1SACCS AS ПланСчетов (NOLOCK) ON ОсновнойОстатки.Счет = ПланСчетов.ID
		|ORDER BY ПланСчетов.SCHKOD";  
	Состояние("Расчитываются первоначальная стоимость и начисленная амортизация объектов ОС");
	SQLSession.ВыполнитьИнструкцию(ТекстЗапроса, ТЗОС); 

     

При использовании AccountsRecordset.ert - все норм!
А при использовании AccountsRecordsetV2.ert дает ошибку синтаксиса (35 строка - syntax near ')'   ).

Кто знаит почему? Заранее спасибо!
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #146 - 21. Июня 2007 :: 07:17
Печать  
У меня в текущей версии не воспроизводится.

Если дата файла AccountsRecordsetV2.ert раньше 19.06 - скачай свежий из репозитария.
Иначе - покажи результат работы метода .Отладка(1).
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
dsultan
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 4
Зарегистрирован: 02. Апреля 2008
Re: Прямые запросы к бухгалтерским итогам
Ответ #147 - 03. Апреля 2008 :: 06:59
Печать  
как в нижеследующий запрос добавить вывод наименования номенклатуры?

ар = СоздатьОбъект("AccountsRecordSet");
ар.УстановитьТекстовыйПараметр("ВыбСчет",  "    1V   ");
ар.УстановитьТекстовыйПараметр("ВыбДата",  РабочаяДата());
ТекстЗапроса = "
    |SELECT КоличествоОстаток, СуммаОстаток
    |FROM $БИОстатки.Основной(:ВыбДата,,
    |        (Счет = :ВыбСчет), Номенклатура
    |    ) БИОстаткиОсновной
    |";
тз = ар.ВыполнитьИнструкцию(ТекстЗапроса);
тз.ВыбратьСтроку();
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #148 - 03. Апреля 2008 :: 09:18
Печать  
dsultan писал(а) 03. Апреля 2008 :: 06:59:
как в нижеследующий запрос добавить вывод наименования номенклатуры?

Код
Выбрать все
|SELECT КоличествоОстаток, СуммаОстаток
|	, Номенклатура.DESCR
|FROM $БИОстатки.Основной(:ВыбДата,,
|		(Счет = :ВыбСчет), Номенклатура
|	) БИОстаткиОсновной
|	LEFT JOIN $Справочник.Номенклатура Номенклатура (NOLOCK) ON БИОстаткиОсновной.Субконто1 = Номенклатура.ID
 



dsultan писал(а) 03. Апреля 2008 :: 06:59:
ар.УстановитьТекстовыйПараметр("ВыбСчет",  "    1V   ");

Ужас
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
dsultan
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 4
Зарегистрирован: 02. Апреля 2008
Re: Прямые запросы к бухгалтерским итогам
Ответ #149 - 03. Апреля 2008 :: 09:50
Печать  
berezdetsky писал(а) 03. Апреля 2008 :: 09:18:
Код
Выбрать все
|SELECT КоличествоОстаток, СуммаОстаток
|	, Номенклатура.DESCR
|FROM $БИОстатки.Основной(:ВыбДата,,
|		(Счет = :ВыбСчет), Номенклатура
|	) БИОстаткиОсновной
|	LEFT JOIN $Справочник.Номенклатура Номенклатура (NOLOCK) ON БИОстаткиОсновной.Субконто1 = Номенклатура.ID
 




спасибо

dsultan писал(а) 03. Апреля 2008 :: 06:59:
ар.УстановитьТекстовыйПараметр("ВыбСчет",  "    1V   ");
Ужас


уже поправил, newbie Улыбка
  
Наверх
 
IP записан
 
dsultan
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 4
Зарегистрирован: 02. Апреля 2008
Re: Прямые запросы к бухгалтерским итогам
Ответ #150 - 07. Апреля 2008 :: 05:46
Печать  
а возможно что то подобное в dbf базе?
  
Наверх
 
IP записан
 
alex-ander
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #151 - 17. Апреля 2008 :: 09:30
Печать  
Класс - класс!

Но один вопросик. Планируется ли ввести класс в 1cpp? При работе с .ert есть некоторые тормоза. Вот строка из замера скорострельности:

AccountsRecordsetV2.ert      2110      Возврат(Сам(Контекст).ПолучитьБазовыйКласс().ВыполнитьИнструкцию(ТекстЗапроса, ТЗ, ОчиститьТЗ));      2      0.507237      82.57

При проведении одного документа  - неважно, но про проведении пары тысяч каждая десятая секунды на счету.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #152 - 17. Апреля 2008 :: 09:33
Печать  
И о чем, как ты думаешь, говорит эта строка?
Как раз идет обращение к данным сервера, что и занимает основное время.
И тут не столь важно, из внутреннего кода 1С++ выполняется код или из класс, все равно все тормоза будут исходить из данных и их настройки.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
alex-ander
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #153 - 17. Апреля 2008 :: 09:56
Печать  
artbear писал(а) 17. Апреля 2008 :: 09:33:
И о чем, как ты думаешь, говорит эта строка?
Как раз идет обращение к данным сервера, что и занимает основное время.
И тут не столь важно, из внутреннего кода 1С++ выполняется код или из класс, все равно все тормоза будут исходить из данных и их настройки.


Дело в том, что запрос непосредственно к таблицам (без класса) выполняется гораздо быстрее. Разницы же между виртуальными таблицами из 1cpp и непосредственным обращением к реальным таблицам я почти не вижу. Из этого и вывод, что подтормаживает класс.

Писать же запросы к таблицам, имея ТАКОЙ класс - мазохизм, вот и геморроюсь тут Улыбка
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #154 - 17. Апреля 2008 :: 10:39
Печать  
Если у тебя есть предложения по оптимизации формируемых запросов, я готов к обсуждению.
Хотя, для класса, сделанного от нечего делать, пока лежал дома с ангиной, получилось не так уж плохо..  Улыбка
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
alex-ander
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 10
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #155 - 17. Апреля 2008 :: 11:19
Печать  
berezdetsky писал(а) 17. Апреля 2008 :: 10:39:
Если у тебя есть предложения по оптимизации формируемых запросов, я готов к обсуждению.
Хотя, для класса, сделанного от нечего делать, пока лежал дома с ангиной, получилось не так уж плохо..  Улыбка


Оптимизировать запросы, судя по всему, абсолютно не нужно. Просто хорошо бы, если б этот класс был внутри 1cpp рядышком с индексированной таблицей. Он достоин того.
  
Наверх
 
IP записан
 
lumox
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 3
Зарегистрирован: 10. Мая 2008
Re: Прямые запросы к бухгалтерским итогам
Ответ #156 - 10. Мая 2008 :: 15:58
Печать  
Делаю запрос
|SELECT ОсновнойОборотыДтКт.СчетДт [СчетДт $Счет.Основной]
|               , ОсновнойОборотыДтКт.СчетКт [СчетКт  $Счет.Основной]
|               , ОсновнойОборотыДтКт.СубконтоДт1 [СубконтоДт1 $Субконто]
|               , ОсновнойОборотыДтКт.СубконтоДт1_вид
|               , ОсновнойОборотыДтКт.СубконтоДт2 [СубконтоДт2 $Субконто]
|               , ОсновнойОборотыДтКт.СубконтоДт2_вид
|               , ОсновнойОборотыДтКт.СубконтоДт3 [СубконтоДт3 $Субконто]
|               , ОсновнойОборотыДтКт.СубконтоДт3_вид
|               , ОсновнойОборотыДтКт.СубконтоКт1 [СубконтоКт1 $Субконто]
|               , ОсновнойОборотыДтКт.СубконтоКт1_вид
|               , ОсновнойОборотыДтКт.СубконтоКт2 [СубконтоКт2 $Субконто]
|               , ОсновнойОборотыДтКт.СубконтоКт2_вид
|               , ОсновнойОборотыДтКт.СубконтоКт3 [СубконтоКт3 $Субконто]
|               , ОсновнойОборотыДтКт.СубконтоКт3_вид
|               , ОсновнойОборотыДтКт.СуммаОборот
|               , ОсновнойОборотыДтКт.ВалютнаяСуммаОборот
|               , ОсновнойОборотыДтКт.КоличествоОборот
|FROM $БИОборотыДтКт.Основной(:ВыбДата, :ВыбДата1 ~,,,
|               ((СчетДт = :ВыбСчет) AND (СубконтоДТ1 = :Ном) AND (СубконтоДт2 = :места))
|       ) AS ОсновнойОборотыДтКт
|";

выпадает с такой ошибкой.


тз = ар.ВыполнитьИнструкцию(ТекстЗапроса);
{D:\ТРЕНИРОВКАПО БИ.ERT(101)}: AccountsRecordset::СформироватьОшибку(Строка ТекстОшибки=State 42S22, native 207, message [Microsoft][ODBCSQL Server Driver][SQL Server]Invalid column name 'СубконтоДТ2'.) : State

Что делаю не так?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #157 - 11. Мая 2008 :: 06:34
Печать  
В секциях УсловиеСчета можно использовать только соответствующее поле Счет. Условия по субконто нужно перенести в секцию Условие. Если ВыбСчет это не группа, то условие по счету тоже лучше перенести в секцию Условие - так будет эффективнее.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
lumox
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 3
Зарегистрирован: 10. Мая 2008
Re: Прямые запросы к бухгалтерским итогам
Ответ #158 - 11. Мая 2008 :: 09:14
Печать  
Огромное спасибо... Работает на ура... А я уже себе всю голову сломал... С толку сбили предыдущие посты с подобной структурой.
  
Наверх
 
IP записан
 
GEORG
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 43
Зарегистрирован: 15. Мая 2008
Re: Прямые запросы к бухгалтерским итогам
Ответ #159 - 31. Мая 2008 :: 10:15
Печать  
где проставить условие (РазделительУчета= :РазделительУчета)???
  
Наверх
 
IP записан
 
g00d
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 68
Зарегистрирован: 13. Ноября 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #160 - 25. Июня 2008 :: 07:25
Печать  
в чем ошибка ?
     СпСчетов=СоздатьОбъект("СписокЗначений");
     СпСчетов.ДобавитьЗначение(СчетПоКоду("20"));
     СпСчетов.ДобавитьЗначение(СчетПоКоду("25"));
     СпСчетов.ДобавитьЗначение(СчетПоКоду("26"));
     СпСчетов.ДобавитьЗначение(СчетПоКоду("29"));
     СпСчетов.ДобавитьЗначение(СчетПоКоду("44"));
     
     SQL = СоздатьОбъект("AccountsRecordSet");
     SQL.SetDatabase1C(); 
     SQL.debug(1); 
      SQL.УстановитьТекстовыйПараметр("НачДата",НачДата);
     SQL.УстановитьТекстовыйПараметр("КонДата", КонДата);
     SQL.УстановитьТекстовыйПараметр("Подразд", Подразд);
     SQL.УложитьСписокОбъектов(СпСчетов, "#ВыбСчет");


     ТекстЗапроса = "
     |select ОборотыДтКт.Период
     |            , ОборотыДтКт.СчетДт [СчетДт $Счет.Основной]
     |            , ОборотыДтКт.СчетКт [СчетКт $Счет.Основной]
     |            , ОборотыДтКт.Валюта [Валюта $Справочник.Валюты]
     |            , ОборотыДтКт.СубконтоДт1 [СубконтоДт1 $Субконто]
     |            , ОборотыДтКт.СубконтоДт1_вид
     |            , ОборотыДтКт.СубконтоКт1 [СубконтоКт1 $Субконто]
     |            , ОборотыДтКт.СубконтоКт1_вид
     |            , ОборотыДтКт.СуммаОборот
     |            , ОборотыДтКт.ВалютнаяСуммаОборот
     |            , ОборотыДтКт.КоличествоОборот
     |            $БИОборотыДтКт.Основной(:НачДата, :КонДата ~, ,
     |            INNER JOIN $Справочник.Товары AS Товары (NOLOCK) ON СубконтоДт1 = Товары.ID
     |                              , (СчетДт in (select val from #ВыбСчет))
     |                              , (Товары)
     |                              , (СчетКт in (select val from #ВыбСчет))
     |                              , (Товары), ) AS ОборотыДтКт      
     |            LEFT OUTER JOIN _1SACCS AS ПланСчетовДт (NOLOCK) ON ОборотыДтКт.СчетДт = ПланСчетовДт.ID
     |            LEFT OUTER JOIN _1SACCS AS ПланСчетовКт (NOLOCK) ON ОборотыДтКт.СчетКт = ПланСчетовКт.ID
     |ORDER BY ОсновнойОборотыДтКт.Период
     |            , ПланСчетовДт.SCHKOD
     |            , ПланСчетовКт.SCHKOD
     |";
                 
     тз = SQL.ВыполнитьИнструкцию(ТекстЗапроса); 


===========================================================================
AccountsRecordset::СформироватьОшибку(String Ошибка=State 42000, native 156, message [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near the keyword 'SELECT'.)
вм.СформироватьОшибку(Ошибка);
{AccountsRecordsetV2@MD(30) }
===========================================================================
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #161 - 25. Июня 2008 :: 07:33
Печать  
Что то вы батенько фигнюс написали, например явно не хватает FROM
  
Наверх
ICQ  
IP записан
 
g00d
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 68
Зарегистрирован: 13. Ноября 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #162 - 25. Июня 2008 :: 07:34
Печать  
Nick писал(а) 25. Июня 2008 :: 07:33:
Что то вы батенько фигнюс написали, например явно не хватает FROM

глаз алмаз...
хотя помню что былаПодмигивание
  
Наверх
 
IP записан
 
Berck
Junior Member
**
Отсутствует



Сообщений: 66
Местоположение: Москва
Зарегистрирован: 17. Июля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #163 - 23. Июля 2008 :: 13:32
Печать  
Подскажите, пожалуйста.
Хочу отчет запускать из базы где нет плана счетов.
подключаться к бухгалтерсой базе и вытягивать данные.
При попытке создания класса выдает ошибку:
"AccountsRecordset::СформироватьОшибку(Строка Ошибка=План счетов не определен!) : План счетов не определен!
вм.СформироватьОшибку(Ошибка);"
  
Наверх
 
IP записан
 
Berck
Junior Member
**
Отсутствует



Сообщений: 66
Местоположение: Москва
Зарегистрирован: 17. Июля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #164 - 23. Июля 2008 :: 13:43
Печать  
При попытке создания объекта вот такая ошибка :
"клРСБух = СоздатьОбъект("AccountsRecordset");
{E:\MY\БУХЗАПРОС.ERT(6)}: Поле агрегатного объекта не обнаружено
AccountsRecordset::Конструктор()
Сам(Контекст).ПолучитьБазовыйКласс().ВыполнитьИнструкцию(ТекстЗапроса);
{\\server\BUH\ExtForms\Классы\AccountsRecordsetV2.ert(2342) }
==================================

Это можно как-то решить без замены 1С++ версия "1.7.0.0" или это никак не связано?
(очень много всего завязано на эту дллку и менять пока страшно  Смущённый )

З.Ы это при запуске в бухгалтерсой базе.
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #165 - 23. Июля 2008 :: 13:52
Печать  
Berck писал(а) 23. Июля 2008 :: 13:32:
Хочу отчет запускать из базы где нет плана счетов.
подключаться к бухгалтерсой базе и вытягивать данные.

Класс привязан к метаданным текущей базы. Подключайся к бух. базе по OLE и создавай класс там.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #166 - 23. Июля 2008 :: 13:54
Печать  
Berck писал(а) 23. Июля 2008 :: 13:43:
Это можно как-то решить без замены 1С++ версия "1.7.0.0" или это никак не связано?

Обновление до 1.8.1.6, скорее всего, пройдёт без проблем.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Berck
Junior Member
**
Отсутствует



Сообщений: 66
Местоположение: Москва
Зарегистрирован: 17. Июля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #167 - 23. Июля 2008 :: 14:42
Печать  
berezdetsky писал(а) 23. Июля 2008 :: 13:52:
Berck писал(а) 23. Июля 2008 :: 13:32:
Хочу отчет запускать из базы где нет плана счетов.
подключаться к бухгалтерсой базе и вытягивать данные.

Класс привязан к метаданным текущей базы. Подключайся к бух. базе по OLE и создавай класс там.

berezdetsky писал(а) 23. Июля 2008 :: 13:54:
Berck писал(а) 23. Июля 2008 :: 13:43:
Это можно как-то решить без замены 1С++ версия "1.7.0.0" или это никак не связано?

Обновление до 1.8.1.6, скорее всего, пройдёт без проблем.


Спасибо. буду пробывать. разбираться.
  
Наверх
 
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Вид документа
Ответ #168 - 28. Июля 2008 :: 06:42
Печать  
Как можно в читабельном виде получить вид документа? 
     |SELECT 
     |ВидДокумента as Док_вид,            
     |FROM 
     | $БИОборотыДтКт....
          ....
В выборке  номера  видов, нужны имена.
  
Наверх
 
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Вид документа
Ответ #169 - 28. Июля 2008 :: 06:50
Печать  
RuporAbsurda писал(а) 28. Июля 2008 :: 06:42:
Как можно в читабельном виде получить вид документа?  
    |SELECT  
    |ВидДокумента as Док_вид,            
    |FROM  
    | $БИОборотыДтКт....
          ....
В выборке  номера  видов, нужны имена.

Никак. Только укладывать именва в таблицу и джойнить к ней.
trdm что-то доделывал, но в релиз 1с++ это не вошло. Про ночные сборки не знаю.
  
Наверх
ICQ  
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #170 - 28. Июля 2008 :: 07:02
Печать  
А в таблицу соответствие номер-вид как получить?
  
Наверх
 
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #171 - 28. Июля 2008 :: 07:08
Печать  
MetaDataWork::ИдДокумента(НомИмяДок)
  
Наверх
ICQ  
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #172 - 28. Июля 2008 :: 07:11
Печать  
RuporAbsurda писал(а) 28. Июля 2008 :: 07:02:
А в таблицу соответствие номер-вид как получить?

http://www.1cpp.ru/forum/YaBB.pl?num=1214911499/0#0
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вид документа
Ответ #173 - 28. Июля 2008 :: 07:40
Печать  
Mikeware писал(а) 28. Июля 2008 :: 06:50:
RuporAbsurda писал(а) 28. Июля 2008 :: 06:42:
Как можно в читабельном виде получить вид документа?  
    |SELECT  
    |ВидДокумента as Док_вид,            
    |FROM  
    | $БИОборотыДтКт....
          ....
В выборке  номера  видов, нужны имена.

Никак. Только укладывать именва в таблицу и джойнить к ней.
trdm что-то доделывал, но в релиз 1с++ это не вошло. Про ночные сборки не знаю.

В текущей версии 3.0 это есть только для SQL версии:
Цитата:
Типизирующие имена: ВидДокумента и ВидДокументаПредставление

P.S. делал это trad
  
Наверх
 
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Вид документа
Ответ #174 - 28. Июля 2008 :: 07:43
Печать  
JohnyDeath писал(а) 28. Июля 2008 :: 07:40:
В текущей вермсии 3.0 это есть только для SQL версии:
[quote]Типизирующие имена: ВидДокумента и ВидДокументаПредставление
P.S. делал это trad

Переход на 3.0 требует ручной работы?
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #175 - 28. Июля 2008 :: 07:54
Печать  
Самые большие изменения произошли в ТП, но и там всё обходится довольно-таки безболезненно. Единственное, что помню, так это в событиях "НачалоПеретаскивания" и "ПроверкаПеретаскивания" немножко изменен порядок параметров.
+ Если у тебя были несоответствия в defcls с самим классом, то повалятся ошибки (что ИМХО очень правильно)
Больше навскидку ничего не вспоминаю. Итог: практически безболезненно!  Подмигивание
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вид документа
Ответ #176 - 28. Июля 2008 :: 08:15
Печать  
Mikeware писал(а) 28. Июля 2008 :: 07:43:
Переход на 3.0 требует ручной работы?

C версии 1.7.0.0 ? Почти 100% нужна будет доработка, хотя все зависит от используемых тобой подсистем 1С++ Улыбка
ЗЫ но меня терзает уверенность, что на такой старой версии ты юзал очень мало фич 1С++ Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #177 - 28. Июля 2008 :: 08:18
Печать  
Фигасе... а речь идёт о переходе с 1.7.0.0??  Ужас
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #178 - 28. Июля 2008 :: 08:21
Печать  
В 1.7.0.0. не было ТП Подмигивание

По представлениям вида есть запись: http://www.1cpp.ru/bugs/show_bug.cgi?id=3655
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Вид документа
Ответ #179 - 28. Июля 2008 :: 08:25
Печать  
artbear писал(а) 28. Июля 2008 :: 08:15:
C версии 1.7.0.0 ? Почти 100% нужна будет доработка, хотя все зависит от используемых тобой подсистем 1С++ Улыбка
ЗЫ но меня терзает уверенность, что на такой старой версии ты юзал очень мало фич 1С++ Улыбка

Сейчас на 2.5. Хотя подсистем действительно юзается мало. Прямые запросы и табличное поле.
  
Наверх
ICQ  
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #180 - 31. Июля 2008 :: 12:14
Печать  
   В модуле документа при проведении жутко тормозит, если документ прошлого месяца. Если документ конца этого месяца все работает быстро. В чем может быть причина?        

           |SELECT
     |ОсновнойОстатки.Субконто1 AS [С1 $Субконто]
     |,ОсновнойОстатки.Субконто1_вид
     |,SUM(ОсновнойОстатки.КоличествоОстатокДт) AS КДт
     |FROM $БИОстатки.Основной(:Выбдата~,,((Счет =:Счет)  AND (Субконто2=:Склад)),) AS Ост      
     |WHERE
     |(ОсновнойОстатки.КоличествоОстатокДт<>0)
     |GROUP BY
     | ОсновнойОстатки.Субконто1
     |,ОсновнойОстатки.Субконто1_вид
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #181 - 31. Июля 2008 :: 12:30
Печать  
Странно, что он вообще работает - с условием по субконто в секции УсловиеСчета. Круглые глаза И где отбор по разделителю учёта?
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #182 - 31. Июля 2008 :: 12:54
Печать  
А для чего разделитель учета?
Так правильно?
    SELECT
    |ОсновнойОстатки.Субконто1 AS [С1 $Субконто]
    |,ОсновнойОстатки.Субконто1_вид
    |,SUM(ОсновнойОстатки.КоличествоОстатокДт) AS КДт
    |FROM $БИОстатки.Основной(:Выбдата~,,(Счет =:Счет),) AS Ост      
    |WHERE  
    |(ОсновнойОстатки.КоличествоОстатокДт<>0)  
    |AND (ОсновнойОстатки.Субконто2=:Склад)
    |GROUP BY
    | ОсновнойОстатки.Субконто1  
    |,ОсновнойОстатки.Субконто1_вид

И что за условие счета у меня в описании написано      $БИОстатки.<ПланСчетов>(<ГраницаРасчета>,<Соединение>,<Условие>,<Субконто>)
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #183 - 31. Июля 2008 :: 13:21
Печать  
RuporAbsurda писал(а) 31. Июля 2008 :: 12:54:
А для чего разделитель учета?

Если в конфигурации определён разделитель учёта, условие по нему рекомендуется для повышения эффективности (попадание в индекс).

RuporAbsurda писал(а) 31. Июля 2008 :: 12:54:
Так правильно?

:Счет - это элемент или группа?

RuporAbsurda писал(а) 31. Июля 2008 :: 12:54:
И что за условие счета у меня в описании написано      $БИОстатки.<ПланСчетов>(<ГраницаРасчета>, <Соединение>, <Условие>, <Субконто>)

Это было давно и не правда.  Улыбка Таким был синтаксис первой версии класса. Начиная со второй это

$БИОстатки.<ПланСчетов>(<ГраницаРасчета>, <Соединение>, <УсловиеСчета>, <Субконто>, <Условие>)
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #184 - 31. Июля 2008 :: 13:33
Печать  
Где взять?
Если заменить все придется переписывать?
Еще вопрос если указать вместо даты СформироватьПозициюДокумента() будет работать или нужно через md?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #185 - 31. Июля 2008 :: 13:51
Печать  
RuporAbsurda писал(а) 31. Июля 2008 :: 13:33:
Где взять?
Если заменить все придется переписывать?
Еще вопрос если указать вместо даты СформироватьПозициюДокумента() будет работать или нужно через md?

http://www.1cpp.ru/forum/YaBB.pl?num=1181817217
Да.
С первым модификатором будет работать.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #186 - 01. Августа 2008 :: 11:21
Печать  
Можно ли оптимизировать такой запрос, чтобы пошустрее работал?

|SELECT
     |ОсновнойОстатки.Субконто1 AS [Субконто1 $Субконто]
     |,ОсновнойОстатки.Субконто1_вид
     |,ОсновнойОстатки.Субконто2 AS [Субконто2 $Субконто]
     |,ОсновнойОстатки.Субконто2_вид
     |,SUM(ОсновнойОстатки.КоличествоОстатокДт) AS КоличествоДт
     |FROM $БИОстатки.Основной(:ВыбДата~,,,,(Счет =:Счет)) AS ОсновнойОстатки            
     |WHERE
     |(ОсновнойОстатки.КоличествоОстатокДт<>0)
     | AND  (ОсновнойОстатки.Субконто2 =:Склад)
     |GROUP BY
     | ОсновнойОстатки.Субконто1
     |,ОсновнойОстатки.Субконто1_вид
     |,ОсновнойОстатки.Субконто2
     |,ОсновнойОстатки.Субконто2_вид
  
Наверх
 
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #187 - 01. Августа 2008 :: 11:34
Печать  
RuporAbsurda писал(а) 01. Августа 2008 :: 11:21:
Можно ли оптимизировать такой запрос, чтобы пошустрее работал?

|SELECT
     |ОсновнойОстатки.Субконто1 AS [Субконто1 $Субконто]
     |,ОсновнойОстатки.Субконто1_вид
     |,ОсновнойОстатки.Субконто2 AS [Субконто2 $Субконто]
     |,ОсновнойОстатки.Субконто2_вид
     |,SUM(ОсновнойОстатки.КоличествоОстатокДт) AS КоличествоДт
     |FROM $БИОстатки.Основной(:ВыбДата~,,,,(Счет =:Счет)) AS ОсновнойОстатки            
     |WHERE
     |(ОсновнойОстатки.КоличествоОстатокДт<>0)
     | AND  (ОсновнойОстатки.Субконто2 =:Склад)
     |GROUP BY
     | ОсновнойОстатки.Субконто1
     |,ОсновнойОстатки.Субконто1_вид
     |,ОсновнойОстатки.Субконто2
     |,ОсновнойОстатки.Субконто2_вид

А разве в данном случае не ругается на отсутсвие агрегатных функций????
  
Наверх
ICQ  
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #188 - 01. Августа 2008 :: 11:39
Печать  
SUM(ОсновнойОстатки.КоличествоОстатокДт) AS КоличествоДт - это имеется ввиду?
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #189 - 01. Августа 2008 :: 12:25
Печать  
ОсновнойОстатки.Субконто1_вид и ОсновнойОстатки.Субконто2_вид можно вывести из группировки, если поставить в селек-листе: MAX(ОсновнойОстатки.Субконто1_вид) и MAX(ОсновнойОстатки.Субконто2_вид) соответственно. (если я правильно понял смысл запроса)
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #190 - 01. Августа 2008 :: 13:29
Печать  
RuporAbsurda писал(а) 01. Августа 2008 :: 11:21:
Можно ли оптимизировать такой запрос, чтобы пошустрее работал?

:Счет - это группа или элемент? Сколько и каких типов у него субконто? Разделитель учёта определён?
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #191 - 04. Августа 2008 :: 06:12
Печать  
Счет это элемент, 2 субконто типа справочник, без разделителя учета.
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #192 - 04. Августа 2008 :: 08:06
Печать  
Код
Выбрать все
|SELECT ОсновнойОстатки.Субконто1 [Субконто1 $Справочник]
|	, ОсновнойОстатки.КоличествоОстатокДт AS КоличествоДт
|FROM $БИОстатки.Основной(:ВыбДата~,,,
|		Субконто1,
|		(Счет = :Счет) AND (Субконто2 = :Склад)) AS ОсновнойОстатки
|WHERE (ОсновнойОстатки.КоличествоОстатокДт <> 0) 


Если счёт активный - выбирать поле ОсновнойОстатки.КоличествоОстаток и убрать секцию WHERE.
Если счёт валютный - вернуть Sum и Group By.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #193 - 04. Августа 2008 :: 11:35
Печать  
К сожалению не получилось.
Результаты замеров:
176 (1 вариант)
256 (2 вариант)
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #194 - 04. Августа 2008 :: 11:50
Печать  
Цитата:
- Приборы?
- Тридцать три!
- Что "тридцать три"?
- А что "приборы"?

Смех

Сравнивать в таких случаях надо IO или планы выполнения.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Прямые запросы к бухгалтерским итогам
Ответ #195 - 04. Августа 2008 :: 11:54
Печать  
В данном случае важно, что 2 вариант медленее.
А что за IO?
  
Наверх
 
IP записан
 
mash
1c++ donor
Отсутствует


1C++ v. 3.0.1.23

Сообщений: 148
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #196 - 18. Августа 2008 :: 14:58
Печать  
При использовании обновленного класса v2.5 заметил такую любопытную особенность.

Класс переопределяет методы ДобавитьТекстовыйПараметр() и составляет свой собственный список переменных запроса, который потом используется при отпарсивании виртуальных таблиц.

Проблема же заключается в том, что ежели выполнить ОбрМетаСКЛ() после ВыполнитьИнструкцию(), с целью, например, посмотреть отпарсенный запрос в обработчике ошибок, то класс выдает ошибку, ибо после выполнения любого запроса данный список очищается и парсер виртуальных таблиц становится бессильным. Это баг или фича ?
  

Поспешность наносит ущерб
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
mash
1c++ donor
Отсутствует


1C++ v. 3.0.1.23

Сообщений: 148
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #197 - 18. Августа 2008 :: 15:07
Печать  
И еще один вопрос. Это только у меня, в классе,  
Код
Выбрать все
Шаблон("[мд.ИдОбъекта(Метаданные.РазделительУчета)]"); 

возвращает Цитата:
Шаблон("[мд.ИдОбъекта(Метаданные.РазделительУчета)]
, а
Код
Выбрать все
мд.ИдОбъекта(Метаданные.РазделительУчета) 

выдает номер поля разделителя учета ?
  

Поспешность наносит ущерб
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #198 - 18. Августа 2008 :: 15:08
Печать  
mash писал(а) 18. Августа 2008 :: 14:58:
Это баг или фича ?

хз. А то, что установка параметров нужна для каждого вызова ODBCRecordset.ВыполнитьИнструкцию - это баг или фича?
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
mash
1c++ donor
Отсутствует


1C++ v. 3.0.1.23

Сообщений: 148
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #199 - 18. Августа 2008 :: 15:12
Печать  
Я про ОбрМетаСКЛ. Можно ли парсить запрос не сбрасывая при этом установленные параметры ? Или сбрасывать текст запроса в файл после неудачного выполнения запроса (например при ошибке в TSQL) ?

По сбросу параметров после удачного выполнения запросов - у меня вопросов нет. А вот возможность сбрасывать отпарсеный текст запроса в файл по Попытка Исключение, при неудачном выполнении очень бы пригодилась.
  

Поспешность наносит ущерб
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #200 - 18. Августа 2008 :: 17:56
Печать  
mash писал(а) 18. Августа 2008 :: 15:07:
И еще один вопрос. Это только у меня ...?

Похоже, что да.

mash писал(а) 18. Августа 2008 :: 15:12:
Можно ли парсить запрос не сбрасывая при этом установленные параметры ?

По сбросу параметров после удачного выполнения запросов - у меня вопросов нет.

Перенеси строку

     ПараметрыЗапроса.УдалитьВсе();

за КонецПопытки - будет то, что ты хочешь. Я пока к такому поведению морально не готов. Хотя, в сочетании с методом ПолучитьПараметр, может получиться не так уж плохо..  Нерешительный
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
mash
1c++ donor
Отсутствует


1C++ v. 3.0.1.23

Сообщений: 148
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #201 - 19. Августа 2008 :: 05:53
Печать  
berezdetsky писал(а) 18. Августа 2008 :: 17:56:
Перенеси строку

     ПараметрыЗапроса.УдалитьВсе();

за КонецПопытки - будет то, что ты хочешь. Я пока к такому поведению морально не готов. Хотя, в сочетании с методом ПолучитьПараметр, может получиться не так уж плохо..  Нерешительный


А как насчет, убрать ПараметрыЗапроса.УдалитьВсе() из метода ОбрМетаСКЛ(), чтобы обычный разбор текста запроса, без его выполнения, не приводил к необходимости заново устанавливать параметры ?
  

Поспешность наносит ущерб
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #202 - 19. Августа 2008 :: 05:59
Печать  
Всё в твоих руках.  Круглые глаза
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
mash
1c++ donor
Отсутствует


1C++ v. 3.0.1.23

Сообщений: 148
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #203 - 19. Августа 2008 :: 06:02
Печать  
Ну то что в моих то понятно  Смех Это я в качестве глобальной рацухи  - изменить поведение класса не хочешь ?
  

Поспешность наносит ущерб
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #204 - 19. Августа 2008 :: 06:22
Печать  
Ну вот как, например, ПараметрыЗапроса.УдалитьВсе() может привести "к необходимости заново устанавливать параметры", если ОбрМетаСКЛ возвращает тебе текст запроса, для выполнения которого установка параметров не нужна?
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Berck
Junior Member
**
Отсутствует



Сообщений: 66
Местоположение: Москва
Зарегистрирован: 17. Июля 2007
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #205 - 01. Сентября 2008 :: 08:36
Печать  
berezdetsky писал(а) 23. Июля 2008 :: 13:52:
Berck писал(а) 23. Июля 2008 :: 13:32:
Хочу отчет запускать из базы где нет плана счетов.
подключаться к бухгалтерсой базе и вытягивать данные.

Класс привязан к метаданным текущей базы. Подключайся к бух. базе по OLE и создавай класс там.

Через ОЛЕ не дают работать настройки безопасности. Нерешительный
Нельзя ли как-то обойтись без ОЛЕ? Озадачен
  
Наверх
 
IP записан
 
korvet33
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 16. Ноября 2010
Re: Прямые запросы к бухгалтерским итогам
Ответ #206 - 16. Ноября 2010 :: 14:49
Печать  
//|SELECT   ОборотыДтКт.СчетДт [КоррСчет $Счет.Основной]
//|       , ОборотыДтКт.СчетКт [КоррСчет $Счет.Основной]
//|            , ОборотыДтКт.СубконтоКт1 [Номенклатура $Субконто]
//|            , ОборотыДтКт.СубконтоКт1_вид Номенклатура_вид   
//|            , ОборотыДтКт.СубконтоКт2 [МестаХранения $Субконто]
//|            , ОборотыДтКт.СубконтоКт2_вид МестаХранения_вид
//|            , ОборотыДтКт.КоличествоОборот Количество 
//|            , 0 СуммаОборотДт 
//|FROM $БИОборотыДтКт.Основной(:НачДата, :КонДата ~,Документ,,
//|      (СчетКт = :ВыбСчет)
//|      ) AS ОборотыДтКт
//|
//|";
Дает ошибку
State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'СчетКт'.
Что не так ???
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #207 - 16. Ноября 2010 :: 16:05
Печать  
korvet33

Секция УсловиеСчетаДт как бы не предназначена для отбора по СчетКт.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
korvet33
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 16. Ноября 2010
Re: Прямые запросы к бухгалтерским итогам
Ответ #208 - 17. Ноября 2010 :: 06:07
Печать  
Буду конкретен.Задаю счет по Дебет -работает

|SELECT   ОборотыДт.СчетКт [КоррСчет $Счет.Основной]
|            , ОборотыДт.СубконтоДт1 [Номенклатура $Субконто]
|            , ОборотыДт.СубконтоДт1_вид Номенклатура_вид   
|            , ОборотыДт.СубконтоДт2 [МестаХранения $Субконто]
|            , ОборотыДт.СубконтоДт2_вид МестаХранения_вид
|            , ОборотыДт.КоличествоОборот Количество 
|            , 0 СуммаОборотКт 
|FROM $БИОборотыДтКт.Основной(:НачДата, :КонДата ~,Документ,,
|      (СчетДт = :ВыбСчет)
|      ) AS ОборотыДт
|
|";

Теперь задаю счет по Кредит

|SELECT   ОборотыКт.СчетДт [КоррСчет $Счет.Основной]
|            , ОборотыКт.СубконтоКт1 [Номенклатура $Субконто]
|            , ОборотыКт.СубконтоКт1_вид Номенклатура_вид   
|            , ОборотыКт.СубконтоКт2 [МестаХранения $Субконто]
|            , ОборотыКт.СубконтоКт2_вид МестаХранения_вид
|            , ОборотыКт.КоличествоОборот Количество 
|            , 0 СуммаОборотДт 
|FROM $БИОборотыДтКт.Основной(:НачДата, :КонДата ~,Документ,,
|      (СчетКт = :ВыбСчет)
|      ) AS ОборотыКт
|
|";

Получаю message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'СчетКт'.
Где зациклился- не пойму ???
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #209 - 17. Ноября 2010 :: 17:58
Печать  
korvet33 писал(а) 17. Ноября 2010 :: 06:07:
Теперь задаю счет по Кредит

...
|FROM $БИОборотыДтКт.Основной(:НачДата, :КонДата ~,Документ,,
|      (СчетКт = :ВыбСчет)
|      ) AS ОборотыКт


Перечитай описание.
berezdetsky писал(а) 16. Ноября 2010 :: 16:05:
Секция УсловиеСчетаДт как бы не предназначена для отбора по СчетКт.

  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
korvet33
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 16. Ноября 2010
Re: Прямые запросы к бухгалтерским итогам
Ответ #210 - 18. Ноября 2010 :: 14:50
Печать  
Спасибо ! Я , был невнимателен,забыл отделить запятыми пропущенные параметры...
  
Наверх
 
IP записан
 
korvet33
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 16. Ноября 2010
Re: Прямые запросы к бухгалтерским итогам
Ответ #211 - 22. Ноября 2010 :: 17:11
Печать  
Вопрос ...
Можно ли в запросе получить характкристки субконто
|SELECT   ОборотыДт.СчетКт [КоррСчет $Счет.Основной]
|            , ОборотыДт.СубконтоДт1 [Номенклатура $Субконто]
|            , ОборотыДт.СубконтоДт1_вид Номенклатура_вид   
|            , ОборотыДт.СубконтоДт2 [МестаХранения $Субконто]
|            , ОборотыДт.СубконтоДт2_вид МестаХранения_вид
|            , ОборотыДт.КоличествоОборот Количество 
|            , 0 СуммаОборотКт 
|FROM $БИОборотыДтКт.Основной(:НачДата, :КонДата ~,Документ,,
|      (СчетДт = :ВыбСчет)
|      ) AS ОборотыДт
|
|";

К примеру СубконтоДт1.ЕдиницаИзмерений и т.
Если можно,то с маленьким примером.
Пробовал INNER JOIN  но неудачно.
Спасибо
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #212 - 22. Ноября 2010 :: 19:20
Печать  
[code]|SELECT ОборотыДт.СчетКт [КоррСчет $Счет.Основной]
|      , ОборотыДт.СубконтоДт1 [Номенклатура $Субконто]
|      , ОборотыДт.СубконтоДт1_вид Номенклатура_вид
|      , ОборотыДт.СубконтоДт2 [МестаХранения $Субконто]
|      , ОборотыДт.СубконтоДт2_вид МестаХранения_вид
|      , ОборотыДт.КоличествоОборот Количество
|      , 0 СуммаОборотКт
|      , $Номенклатура.ЕдиницаИзмерения [ЕдиницаИзмерения $Справочник.ЕдиницыИзмерений]
|FROM $БИОборотыДтКт.Основной(:НачДата, :КонДата ~,Документ,,
|            (СчетДт = :ВыбСчет)
|      ) AS ОборотыДт
|      left join $Справочник.Номенклатура as Номенклатура with (nolock) on ОборотыДт.СубконтоДт1 = Номенклатура.id[/code]
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
SpiritBad
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 17
Зарегистрирован: 17. Сентября 2010
Re: Прямые запросы к бухгалтерским итогам
Ответ #213 - 20. Мая 2011 :: 12:18
Печать  
           ТекстЗапроса = "
           |SELECT  Субконто1 [Субконто1 $Субконто]
           |      , Субконто1_вид
           |      , Субконто2 [Субконто2 $Субконто]
           |      , Субконто2_вид
           |      , Sum(СуммаОстатокДт) СуммаОстатокДт
           |      , Sum(СуммаОстатокКт) СуммаОстатокКт
           |FROM $БИОстатки.Основной(:ВыбДата ~,,
           |            Счет = :ВыбСчет,
           |            (Субконто1,Субконто2)) БИОстатки
           |GROUP BY Субконто1
           |      , Субконто1_вид
           |      , Субконто2
           |      , Субконто2_вид
           |";
           ар = СоздатьОбъект("AccountsRecordset");
           ар.УстановитьТекстовыйПараметр("ВыбДата", РабочаяДата());
           ар.УстановитьТекстовыйПараметр("ВыбСчет", СчетПоКоду("62.1"));
           тз = ар.ВыполнитьИнструкцию(ТекстЗапроса);

Как можно здесь задействовать разделитель учета???
Мне надо выбрать по одной из фирм
  
Наверх
 
IP записан
 
SpiritBad
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 17
Зарегистрирован: 17. Сентября 2010
Re: Прямые запросы к бухгалтерским итогам
Ответ #214 - 20. Мая 2011 :: 12:30
Печать  
           ТекстЗапроса = "
           |SELECT  Субконто1 [Субконто1 $Субконто]
           |      , Субконто1_вид
           |      , Субконто2 [Субконто2 $Субконто]
           |      , Субконто2_вид
           |      , РазделительУчета [РазделительУчета $Справочник.Города]
           |      , Sum(СуммаОстатокДт) СуммаОстатокДт
           |      , Sum(СуммаОстатокКт) СуммаОстатокКт
           |FROM $БИОстатки.Основной(:ВыбДата ~,,
           |            (Счет = :ВыбСчет), (РазделительУчета =:ВыбФирма),
           |            (Субконто1,Субконто2)) БИОстатки
           |GROUP BY Субконто1
           |      , Субконто1_вид
           |      , Субконто2
           |      , Субконто2_вид
           |";
           ар = СоздатьОбъект("AccountsRecordset");
           ар.УстановитьТекстовыйПараметр("ВыбДата", РабочаяДата());
           ар.УстановитьТекстовыйПараметр("ВыбФирма", ВыбГород);
           ар.УстановитьТекстовыйПараметр("ВыбСчет", СчетПоКоду("62.1"));
           тз = ар.ВыполнитьИнструкцию(ТекстЗапроса);
не работает Плачущий
  
Наверх
 
IP записан
 
SpiritBad
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 17
Зарегистрирован: 17. Сентября 2010
Re: Прямые запросы к бухгалтерским итогам
Ответ #215 - 20. Мая 2011 :: 12:50
Печать  
Все понял!!! НЕ НАДО СПС!!!
  
Наверх
 
IP записан
 
Настенок
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 43
Зарегистрирован: 14. Февраля 2011
Re: Прямые запросы к бухгалтерским итогам
Ответ #216 - 31. Мая 2011 :: 08:14
Печать  
Добрый день
использую класс AccountsRecordSet
не получается добавить колонки

счет 1(ДТ) СуммаНачальныйОстаток1 СуммаКонечныйОстаток1
и для счет 2(Кт) СуммаНачальныйОстаток2 СуммаКонечныйОстаток2

и счет1.субконто1=счет2.субконто1


запрос
|SELECT
           |ОС.Code ИнвНом
           |,Период
           |,Счет [Счет $Счет.Основной]
           |,Субконто1 [Субконто1 $Субконто]
           |,Субконто1_вид
           |,Субконто2 [Субконто2 $Субконто]
           |,Субконто2_вид
           |,КоличествоНачальныйОстаток
           |,СуммаНачальныйОстаток
     //      |,КоличествоОборот
     //      |,СуммаОборот
     //      |,КоличествоКонечныйОстаток
           |,СуммаКонечныйОстаток
           |FROM $БИОстаткиОбороты.Основной(:НачДата,:КонДата ~,
           |День,
           |ДвиженияИГраницыПериода,,
           //|(Счет =:ВыбСчетАморт),,
           |(Счет =:ВыбСчет or Счет =:ВыбСчетАморт),,
           | ) БИОстаткиОборотыОсновной
           |LEFT JOIN $Справочник.ОС ОС With (NOLOCK) ON БИОстаткиОборотыОсновной.Субконто1 = ОС.ID

нашла такой способ:

..........
|,СуммаНачальныйОстаток
           |,СуммаНачальныйОстатокДт
           |,СуммаНачальныйОстатокКт
           |,СуммаКонечныйОстаток
           |,СуммаКонечныйОстатокДт
           |,СуммаКонечныйОстатокКт


.....

правильно???
« Последняя редакция: 31. Мая 2011 :: 11:49 - Настенок »  
Наверх
 
IP записан
 
MegaDimich
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Местоположение: Киев
Зарегистрирован: 26. Июня 2011
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #217 - 26. Июня 2011 :: 18:16
Печать  
При выполнении текста запроса:
                 ТекстЗапроса =  "
                 |SELECT ОсновнойОборотыДт.СчетДт [СчетДт $Счет.Новый]
                 |     , ОсновнойОборотыДт.СубконтоДт1 [СубконтоДт1 $Субконто]
                 |     , ОсновнойОборотыДт.СубконтоДт1_вид
                 |     , ОсновнойОборотыДт.СубконтоДт2 [СубконтоДт2 $Субконто]
                 |     , ОсновнойОборотыДт.СубконтоДт2_вид
                 |     , ОсновнойОборотыДт.СуммаОборот
                 |FROM $БИОборотыДтКт.Новый(
                 |            :начДата,
                 |            :конДата ~,
                 |            Документ,
                 |            ,
                 |       (СчетДт = :выбСчет),
                 |       (СубконтоДт1,СубконтоДт2),
                 |       ,
                 |       ,
                 |            ((РазделительУчета = :РазделительУчета) AND (СубконтоДт1 = :Суб1))
                 |       ) AS ОсновнойОборотыДт
                 |";
Все отрабатывается отлично.
Ежели делаю так:
                 ТекстЗапроса =  "
                 |SELECT ОсновнойОборотыДт.СчетДт [СчетДт $Счет.Новый]
                 |     , ОсновнойОборотыДт.СубконтоДт1 [СубконтоДт1 $Субконто]
                 |     , ОсновнойОборотыДт.СубконтоДт1_вид
                 |     , ОсновнойОборотыДт.СубконтоДт2 [СубконтоДт2 $Субконто]
                 |     , ОсновнойОборотыДт.СубконтоДт2_вид
                 |     , ОсновнойОборотыДт.СуммаОборот
                 |FROM $БИОборотыДтКт.Новый(
                 |            :начДата,
                 |            :конДата ~,
                 |            Документ,
                 |            ,
                 |       (СчетДт = :выбСчет),
                 |       (СубконтоДт1,СубконтоДт2),
                 |       ,
                 |       ,
                 |            ((РазделительУчета = :РазделительУчета) AND (СубконтоДт1 = :Суб1) AND (СубконтоДт2 = :Суб2))
                 |       ) AS ОсновнойОборотыДт
                 |";
Результат нулевой. Такое впечатление, что второе субконто вообще не отрабатывается.
  
Наверх
 
IP записан
 
vinogradoff
Full Member
***
Отсутствует



Сообщений: 107
Зарегистрирован: 06. Февраля 2010
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #218 - 27. Июня 2011 :: 05:23
Печать  
попробуй для проверки
Код
Выбрать все
((РазделительУчета = :РазделительУчета) AND (СубконтоДт2 = :Суб2)) 


и проверь что в :Суб2
  
Наверх
 
IP записан
 
MegaDimich
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Местоположение: Киев
Зарегистрирован: 26. Июня 2011
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #219 - 27. Июня 2011 :: 18:27
Печать  
vinogradoff писал(а) 27. Июня 2011 :: 05:23:
попробуй для проверки
Код
Выбрать все
((РазделительУчета = :РазделительУчета) AND (СубконтоДт2 = :Суб2)) 


и проверь что в :Суб2

Не работает.
Если что у меня версия 1С++ 3.2.3.15, а AccountsRecordset v3.13
Уже извратился так, после выполнения запроса (привожу весь текст функции):
Функция глОборотДОСумма(ВыбЭлемент, ВыбДокумент, ВыбФирма, ВыбСчет) Экспорт  
     Если Константа.ВидРасчетаОстатков = 1 Тогда
           Если ТекущаяИБЦентральная()=1 Тогда                      
                 _запрос.УстановитьТекстовыйПараметр("начДата", ВыбДокумент.ДатаДок);
                 _запрос.УстановитьТекстовыйПараметр("конДата", РабочаяДата());
                 _запрос.УстановитьТекстовыйПараметр("РазделительУчета", ВыбФирма);
                 _запрос.УстановитьТекстовыйПараметр("Суб1", ВыбЭлемент);  
                 _запрос.УстановитьТекстовыйПараметр("Суб2", ВыбДокумент);
                 _запрос.УстановитьТекстовыйПараметр("выбСчет", ВыбСчет);  
                                     
                 ТекстЗапроса =  "
                 |SELECT ОсновнойОборотыДт.СчетДт [СчетДт $Счет.Новый]
                 |     , ОсновнойОборотыДт.СубконтоДт1 [СубконтоДт1 $Субконто]
                 |     , ОсновнойОборотыДт.СубконтоДт1_вид
                 |     , ОсновнойОборотыДт.СубконтоДт2 [СубконтоДт2 $Субконто]
                 |     , ОсновнойОборотыДт.СубконтоДт2_вид
                 |     , ОсновнойОборотыДт.СуммаОборот
                 |FROM $БИОборотыДтКт.Новый(
                 |            :начДата,
                 |            :конДата ~,
                 |            Документ,
                 |            ,
                 |       (СчетДт = :выбСчет),
                 |       (СубконтоДт1,СубконтоДт2),
                 |       ,
                 |       ,
                 |            ((РазделительУчета = :РазделительУчета) AND (СубконтоДт1 = :Суб1))
                 |       ) AS ОсновнойОборотыДт
                 |";
                     
                 глТЗ.УдалитьСтроки();
                 _запрос.ВыполнитьИнструкцию(ТекстЗапроса, глТЗ);
                 Если глТЗ.КоличествоСтрок() <>0 Тогда  
                       ОборотСумма = 0;
                       глТЗ.ВыбратьСтроки();
                       Пока глТЗ.ПолучитьСтроку()=1 Цикл  
                             Если глТЗ.СубконтоДт2 = ВыбДокумент Тогда
                                   ОборотСумма = глТЗ.СуммаОборот;
                                   Прервать;
                             КонецЕсли;      
                       КонецЦикла;      
                                   Иначе  
                       ОборотСумма = 0;
                 КонецЕсли;      
                 Возврат ОборотСумма;
           КонецЕсли;
     КонецЕсли;      
КонецФункции              
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #220 - 27. Июня 2011 :: 19:05
Печать  
Тильду добавить было бы проще.  Подмигивание
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
MegaDimich
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Местоположение: Киев
Зарегистрирован: 26. Июня 2011
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #221 - 28. Июня 2011 :: 07:22
Печать  
berezdetsky писал(а) 27. Июня 2011 :: 19:05:
Тильду добавить было бы проще.  Подмигивание

Куда добавить тильду?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Прямые запросы к бухгалтерским итогам
Ответ #222 - 28. Июня 2011 :: 08:02
Печать  
во втором субконто документ?

Код
Выбрать все
 _запрос.УстановитьТекстовыйПараметр("Суб2", ВыбДокумент); 

  
Наверх
wwwICQ  
IP записан
 
MegaDimich
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Местоположение: Киев
Зарегистрирован: 26. Июня 2011
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #223 - 28. Июня 2011 :: 09:03
Печать  
Anatol писал(а) 28. Июня 2011 :: 08:02:
во втором субконто документ?

Код
Выбрать все
 _запрос.УстановитьТекстовыйПараметр("Суб2", ВыбДокумент); 


Да - документ.
Не работает, если указать:
|            ((РазделительУчета = :РазделительУчета) AND (СубконтоДт2 = :Суб2))
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Прямые запросы к бухгалтерским итогам
Ответ #224 - 28. Июня 2011 :: 09:23
Печать  
см
Код
Выбрать все
|		((РазделительУчета = :РазделительУчета) AND (СубконтоДт2 = :Суб2~)) 

  
Наверх
wwwICQ  
IP записан
 
MegaDimich
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Местоположение: Киев
Зарегистрирован: 26. Июня 2011
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #225 - 28. Июня 2011 :: 14:42
Печать  
Anatol писал(а) 28. Июня 2011 :: 09:23:
см
Код
Выбрать все
|		((РазделительУчета = :РазделительУчета) AND (СубконтоДт2 = :Суб2~)) 


УРА! ЗАРАБОТАЛО!!!
Спасибо.
А что означает тильда в этом и других случаях?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Прямые запросы к бухгалтерским итогам
Ответ #226 - 28. Июня 2011 :: 16:55
Печать  
  
Наверх
wwwICQ  
IP записан
 
Ivanych
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 50
Зарегистрирован: 21. Февраля 2012
Re: Прямые запросы к бухгалтерским итогам
Ответ #227 - 11. Марта 2012 :: 11:08
Печать  
berezdetsky писал(а) 27. Июня 2011 :: 19:05:
Тильду добавить было бы проще.  Подмигивание

Здравствуйте Иван. Я хотел поинтересоваться у вас насчет получения остатков на дату. я вот написал:
                 //      Форма.ТекстРазделитель.Заголовок(СокрЛП(Организация));
                 ТекстЗапроса = "
                 |SELECT ОсновнойОстатки.Счет [Счет $Счет.Основной]
                 |      , ОсновнойОстатки.Субконто1 [Субконто1 $Субконто]
                 |      , ОсновнойОстатки.Субконто1_вид
                 |      , ОсновнойОстатки.СуммаОстатокДт
                 |      , ОсновнойОстатки.КоличествоОстатокДт
                 |FROM $БИОстатки.Основной(:ВыбДата,,(Счет = :ВыбСчет),
                 |            (Номенклатура),(РазделительУчета = :ВыбФирма)) AS ОсновнойОстатки
                 |      INNER JOIN $Справочник.Номенклатура AS СпрНом (NOLOCK) ON ОсновнойОстатки.Субконто1 = СпрНом.ID
                 |ORDER BY СпрНом.ID";
                 RS.УстановитьТекстовыйПараметр("ВыбДата", ДатаАктуальности);
                 //RS.УстановитьТекстовыйПараметр("Товар", ВыбНоменклатура);
                 //RS.УстановитьТекстовыйПараметр("МестаХранения", Склад);
                 RS.УстановитьТекстовыйПараметр("ВыбФирма", Организация);
                 RS.УстановитьТекстовыйПараметр("ВыбСчет", Счет);

А как получить остатки на ДатаАктуальности = КонтекстДокумента.ТекущийДокумент()

  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #228 - 11. Марта 2012 :: 15:45
Печать  
Передай позицию документа как строку с первым модификатором.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Ivanych
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 50
Зарегистрирован: 21. Февраля 2012
Re: Прямые запросы к бухгалтерским итогам
Ответ #229 - 12. Марта 2012 :: 03:32
Печать  
berezdetsky писал(а) 11. Марта 2012 :: 15:45:
Передай позицию документа как строку с первым модификатором.

Спасибо Иван. Вот только у меня не получается, на данном примере не могли бы показать если несложно. Заранее Спасибо
  
Наверх
 
IP записан
 
Ivanych
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 50
Зарегистрирован: 21. Февраля 2012
Re: Прямые запросы к бухгалтерским итогам
Ответ #230 - 12. Марта 2012 :: 06:14
Печать  
berezdetsky писал(а) 11. Марта 2012 :: 15:45:
Передай позицию документа как строку с первым модификатором.

Всё разобрался.
  
Наверх
 
IP записан
 
Ivanych
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 50
Зарегистрирован: 21. Февраля 2012
Re: Прямые запросы к бухгалтерским итогам
Ответ #231 - 01. Октября 2012 :: 04:58
Печать  
berezdetsky писал(а) 11. Марта 2012 :: 15:45:
Передай позицию документа как строку с первым модификатором.

Здравствуйте! Помогите разобраться, где допустил ошибку
           RS = СоздатьОбъект("AccountsRecordset");
           RS.УстБД1С();
           ТекстЗапроса = "
           |SELECT ОсновнойОборотыДтКт.Документ
           |      , ОсновнойОборотыДтКт.СчетДт [СчетДт $Счет.Основной]
           |      , ОсновнойОборотыДтКт.СчетКт [СчетКт $Счет.Основной]
           |      , ОсновнойОборотыДтКт.СубконтоДт1 [СубконтоДт1 $Субконто]
           |      , ОсновнойОборотыДтКт.СубконтоДт1_вид
           |      , ОсновнойОборотыДтКт.СубконтоДт2 [СубконтоДт2 $Субконто]
           |      , ОсновнойОборотыДтКт.СубконтоДт2_вид
           |      , ОсновнойОборотыДтКт.СуммаОборотДт
           |      , ОсновнойОборотыДтКт.СуммаОборотКт
           |      , ОсновнойОборотыДтКт.КоличествоОборотДт
           |      , ОсновнойОборотыДтКт.КоличествоОборотКт
           |FROM $БИОборотыДтКт.Основной(:НачДата, :КонДата ~, Документ,
           |      INNER JOIN $Справочник.Номенклатура AS СпрНом (NOLOCK) ON СубконтоДт1 = СпрНом.ID,
           |            (СчетДт = :ВыбСчетДТ),
           |            (ТМЦ, МестаХранения), (СчетКт = :ВыбСчетКТ1) OR (СчетКт = :ВыбСчетКТ2) OR (СчетКт = :ВыбСчетКТ3) OR (СчетКт = :ВыбСчетКТ4) OR (СчетКт = :ВыбСчетКТ5) OR (СчетКт = :ВыбСчетКТ6) OR (СчетКт = :ВыбСчетКТ7), ,
           |            (РазделительУчета = :ВыбФирма)
           |       " + ?( ВыбТМЦ.Выбран()=1, "AND (СубконтоДт1 IN (SELECT Val FROM #ГруппаТМЦ))", ?( СписокТМЦ.РазмерСписка()>0, "AND (СубконтоДт1 IN (SELECT Val FROM #ГруппаТМЦ))", "")) + "
           |       " + ?( ВыбСклад.Выбран()=1, "AND (СубконтоДт2 IN (SELECT Val FROM #ГруппаМестаХранения))", "") + "
           |      ) AS ОсновнойОборотыДтКт
           |      LEFT OUTER JOIN _1SACCS AS ПланСчетовДт (NOLOCK) ON ОсновнойОборотыДтКт.СчетДт = ПланСчетовДт.ID
           |      LEFT OUTER JOIN _1SACCS AS ПланСчетовКт (NOLOCK) ON ОсновнойОборотыДтКт.СчетКт = ПланСчетовКт.ID
           |ORDER BY ОсновнойОборотыДтКт.Документ
           |      , СпрНом.ID";
           Если ПропускатьТМЦ = 1 Тогда
                 СписокТМЦ1 = СоздатьОбъект("СписокЗначений");
           КонецЕсли;

           RS.УстановитьТекстовыйПараметр("НачДата", Дата1);
           RS.УстановитьТекстовыйПараметр("КонДата", Дата2);
           //RS.УстановитьТекстовыйПараметр("Товар", ВыбНоменклатура);
           RS.УложитьСписокОбъектов(ВыбСклад, "#ГруппаМестаХранения", "МестаХранения");
           RS.УстановитьТекстовыйПараметр("ВыбФирма", РазделительУчета);
           RS.УстановитьТекстовыйПараметр("ВыбСчетДТ", СчетПоКоду("133"));
           RS.УстановитьТекстовыйПараметр("ВыбСчетКТ1", СчетПоКоду("33"));
           RS.УстановитьТекстовыйПараметр("ВыбСчетКТ2", СчетПоКоду("628"));
           RS.УстановитьТекстовыйПараметр("ВыбСчетКТ3", СчетПоКоду("602"));
           RS.УстановитьТекстовыйПараметр("ВыбСчетКТ4", СчетПоКоду("701"));
           RS.УстановитьТекстовыйПараметр("ВыбСчетКТ5", СчетПоКоду("К0"));
           RS.УстановитьТекстовыйПараметр("ВыбСчетКТ6", СчетПоКоду("К1"));
           RS.УстановитьТекстовыйПараметр("ВыбСчетКТ7", СчетПоКоду("135"));
           Если (ВыбТМЦ.Выбран() <> 1) Тогда
                 RS.УложитьСписокОбъектов(СписокТМЦ, "#ГруппаТМЦ", "Номенклатура");
           Иначе
                 RS.УложитьСписокОбъектов(ВыбТМЦ, "#ГруппаТМЦ", "Номенклатура");
           КонецЕсли;
           ТЗ111 = RS.ВыполнитьИнструкцию(ТекстЗапроса);
           ТЗ111.ВыбратьСтроки();
           Пока ТЗ111.ПолучитьСтроку() = 1 Цикл
                 ТМЦ = ТЗ111.СубконтоДт1;
                 Поставщик = ТМЦ.Поставщик;
                 ФлагПропускаСтроки = ОтборПоставщик(Поставщик);                  
                 
                 Если ФлагПропускаСтроки = 1 Тогда
                       Продолжить;
                 КонецЕсли;
                 Если ПропускатьТМЦ = 1 Тогда
                       Если ТЗ111.КоличествоОборотДт = 0 Тогда
                             Продолжить;
                       КонецЕсли;
                 КонецЕсли;
                 
                 
                 ТаблицаПриход.НоваяСтрока();      
                 ТаблицаПриход.КолвоПоступление = 0;
                 ТаблицаПриход.СуммаПоступление = 0;
                 ТаблицаПриход.КолвоИнвентаризация = 0;
                 ТаблицаПриход.СуммаИнвентаризация = 0;
                 ТаблицаПриход.КолвоВозвратОтПокупателя = 0;
                 ТаблицаПриход.СуммаВозвратОтПокупателя = 0;
                 ТаблицаПриход.КолвоПриходПрочие = 0;
                 ТаблицаПриход.СуммаПриходПрочие = 0;
                 ТаблицаПриход.Поставщик = Поставщик;
                 ТаблицаПриход.ТМЦ = ТМЦ;

                       Если (ТЗ111.Документ.Вид() = "ПоступлениеТоваров") или (ТЗ111.Документ.Вид() = "ПоступлениеТМЦИмпорт") Тогда
                             ТаблицаПриход.КолвоПоступление = ТЗ111.КоличествоОборотДт;
                             ТаблицаПриход.СуммаПоступление = ТЗ111.СуммаОборотДт;
                             Если ПропускатьТМЦ = 1 Тогда
                                   Если ТМЦ.ЭтоГруппа() = 0 Тогда
                                         СписокТМЦ1.ДобавитьЗначение(ТМЦ,"ТМЦ");
                                   КонецЕсли;
                             КонецЕсли;
                       ИначеЕсли ТЗ111.Документ.Вид() = "Инвентаризация" Тогда
                             ТЗ111.КолвоИнвентаризация = ТЗ111.КоличествоОборотДт;
                             ТЗ111.СуммаИнвентаризация = ТЗ111.СуммаОборотДт;
                             Если ПропускатьТМЦ = 1 Тогда
                                   Если ТМЦ.ЭтоГруппа() = 0 Тогда
                                         СписокТМЦ1.ДобавитьЗначение(ТМЦ,"ТМЦ");
                                   КонецЕсли;
                             КонецЕсли;
                       ИначеЕсли ТЗ111.Документ.Вид() = "ВозвратОтПокупателя" Тогда
                             ТЗ111.КолвоВозвратОтПокупателя = ТЗ111.КоличествоОборотДт;
                             ТЗ111.СуммаВозвратОтПокупателя = ТЗ111.СуммаОборотДт;
                             Если ПропускатьТМЦ = 1 Тогда
                                   Если ТМЦ.ЭтоГруппа() = 0 Тогда
                                         СписокТМЦ1.ДобавитьЗначение(ТМЦ,"ТМЦ");
                                   КонецЕсли;
                             КонецЕсли;
                       Иначе
                             ТЗ111.КолвоПриходПрочие = ТЗ111.КоличествоОборотДт;
                             ТЗ111.СуммаПриходПрочие = ТЗ111.СуммаОборотДт;                        
                             Если ПропускатьТМЦ = 1 Тогда
                                   Если ТМЦ.ЭтоГруппа() = 0 Тогда
                                         СписокТМЦ1.ДобавитьЗначение(ТМЦ,"ТМЦ");
                                   КонецЕсли;
                             КонецЕсли;
                       КонецЕсли;      
                 КонецЦикла;
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #232 - 01. Октября 2012 :: 05:53
Печать  
Цитата:
Вслух же она спросила:
- Скажите пожалуйста, куда мне отсюда идти?
- А куда ты хочешь попасть? - ответил Кот.
- Мне все равно... - сказала Алиса.
- Тогда все равно куда и идти, - заметил Кот.
- ...только бы попасть куда-нибудь, - пояснила Алиса.
- Куда-нибудь ты обязательно попадешь, - сказал Кот. - Нужно только достаточно долго идти.

Т.е. для того, чтобы найти ошибку, нужно знать, в чём она состоит.  Круглые глаза
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Ivanych
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 50
Зарегистрирован: 21. Февраля 2012
Re: Прямые запросы к бухгалтерским итогам
Ответ #233 - 01. Октября 2012 :: 06:21
Печать  
berezdetsky писал(а) 01. Октября 2012 :: 05:53:
Цитата:
Вслух же она спросила:
- Скажите пожалуйста, куда мне отсюда идти?
- А куда ты хочешь попасть? - ответил Кот.
- Мне все равно... - сказала Алиса.
- Тогда все равно куда и идти, - заметил Кот.
- ...только бы попасть куда-нибудь, - пояснила Алиса.
- Куда-нибудь ты обязательно попадешь, - сказал Кот. - Нужно только достаточно долго идти.

Т.е. для того, чтобы найти ошибку, нужно знать, в чём она состоит.  Круглые глаза

ТЗ111 = RS.ВыполнитьИнструкцию(ТекстЗапроса);
{D:\BASES\ALMATYKITAPBASPASY\EXTFORMS\ОТЧЕТЫ\ДВИЖТМЦПОПОСТАВЩИКУ.ERT(933)}: AccountsRecordset::СформироватьОшибку(Строка Ошибка=State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'Документ'.) : State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'Документ'.
вм.СформироватьОшибку(Ошибка);
{D:\Bases\AlmatykitapBaspasy\AccountsRecordsetV3.ert(57) }
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #234 - 01. Октября 2012 :: 07:11
Печать  
При указании периодичности Документ у ВТ добавляются поля ПозицияДокумента и ВидДокумента. IDDOC документа - правые 9 символов позиции.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Ivanych
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 50
Зарегистрирован: 21. Февраля 2012
Re: Прямые запросы к бухгалтерским итогам
Ответ #235 - 01. Октября 2012 :: 07:20
Печать  
berezdetsky писал(а) 01. Октября 2012 :: 07:11:
При указании периодичности Документ у ВТ добавляются поля ПозицияДокумента и ВидДокумента. IDDOC документа - правые 9 символов позиции.

Спасибо. Разобрался
  
Наверх
 
IP записан
 
andrmit
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 24
Зарегистрирован: 23. Августа 2010
Re: Прямые запросы к бухгалтерским итогам
Ответ #236 - 24. Ноября 2012 :: 18:06
Печать  
Никак не могу начать... нужен вот такой запрос...
БухИтоги.ИспользоватьСубконто(ВидыСубконто.Бланк,Дк,1);
БухИтоги.ИспользоватьСубконто(ВидыСубконто.Бронь);

если БухИтоги.ВыполнитьЗапрос(РабочаяДата(),РабочаяДата(),БПК,БЛТ,,,,"К")> 0 тогда
БухИтоги.ВыбратьСубконто();
Пока БухИтоги.ПолучитьСубконто()=1 Цикл
ВЗВ=БухИтоги.Субконто(2);
Если (ВЗВ.Вид()="Бронь") Тогда
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #237 - 26. Ноября 2012 :: 05:50
Печать  
У тебя же .DBF вроде? Если да, то тебе сюда: http://www.1cpp.ru/forum/YaBB.pl?num=1285352210.
Если нет, нужны ответы на следующие вопросы.
Какие типы у видов субконто Бланк и Бронь? БПК и БЛТ - это счета или группы счетов? Разделитель учёта в конфигурации определён? Итоги нужны только по оборотам или остатки тоже?
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
andrmit
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 24
Зарегистрирован: 23. Августа 2010
Re: Прямые запросы к бухгалтерским итогам
Ответ #238 - 26. Ноября 2012 :: 07:22
Печать  
Да.DBF.Пошел по ссылке... Спасибо
  
Наверх
 
IP записан
 
andrmit
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 24
Зарегистрирован: 23. Августа 2010
Re: Прямые запросы к бухгалтерским итогам
Ответ #239 - 26. Ноября 2012 :: 11:28
Печать  
berezdetsky писал(а) 26. Ноября 2012 :: 05:50:
У тебя же .DBF вроде? Если да, то тебе сюда: http://www.1cpp.ru/forum/YaBB.pl?num=1285352210.
Если нет, нужны ответы на следующие вопросы.
Какие типы у видов субконто Бланк и Бронь? БПК и БЛТ - это счета или группы счетов? Разделитель учёта в конфигурации определён? Итоги нужны только по оборотам или остатки тоже?

Бланк - неопределённый документ
Бронь - определённый документ
БПК и БЛК - счета (не группы)
Разделителя учета нет
Нужны остатки
« Последняя редакция: 26. Ноября 2012 :: 15:44 - andrmit »  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #240 - 27. Ноября 2012 :: 07:24
Печать  
andrmit писал(а) 26. Ноября 2012 :: 11:28:
БПК и БЛК - счета (не группы)
...
Нужны остатки

Я не представляю, как можно получить остатки с отбором по корсчёту без перебора проводок от начала времён. Если это именно то, что нужно, такие данные лучше хранить в регистре.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
andrmit
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 24
Зарегистрирован: 23. Августа 2010
Re: Прямые запросы к бухгалтерским итогам
Ответ #241 - 27. Ноября 2012 :: 13:26
Печать  
Прошу прощения...
Нужны обороты
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #242 - 28. Ноября 2012 :: 06:41
Печать  
Для SQL это было бы
Код
Выбрать все
ар = СоздатьОбъект("AccountsRecordset");
ТекстЗапроса = "
	|SELECT Субконто1 [Бланк $Документ]
	|	, Субконто2 [Бронь $Документ.Бронь]
	|	, КоличествоОборотДт
	|	, КоличествоОборотКт
	|FROM $БИОбороты.Основной(:РабочаяДата, :РабочаяДата ~,,,,
	|		(Субконто1, Субконто2),
	|		Субконто1 IN (SELECT val FROM #Бланки)
	|		AND Счет = :БПК
	|		AND КорСчет = :БЛТ,,
	|		БезСубконто
	|	) AS БИОборотыОсновной
	|";
ар.УстановитьТекстовыйПараметр("РабочаяДата", РабочаяДата());
ар.УстановитьТекстовыйПараметр("БПК", БПК);
ар.УстановитьТекстовыйПараметр("БЛТ", БЛТ);
ар.УложитьСписокОбъектов13(Дк, "#Бланки");
тз = ар.ВыполнитьИнструкцию(ТекстЗапроса);
 

  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Дмитрий Д.
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 07. Апреля 2013
Re: Прямые запросы к бухгалтерским итогам
Ответ #243 - 12. Июля 2014 :: 07:45
Печать  
всем привет. Решил переписать акт сверки на прямой запрос, вроде работает, но сильного прирост а по скорости не получил. Может, что не так сделал? Знающие люди, подскажите пожалуйста. Вот сам запрос.

рс = СоздатьОбъект("AccountsRecordset");
     рс.УстБД1С();
     //рс.Отладка(1);
     
     ТекстЗапроса = "
     |SELECT
     |ПозицияДокумента
     |, ВидДокумента
     |, Счет [Счет $Счет.Основной]
     |, Валюта [Валюта $Справочник.Валюты]
     |, Субконто1 [Субконто1 $Субконто]
     |, Субконто1_вид
     |, СуммаНачальныйОстаток СуммаНач
     |, СуммаОборот СуммаОборот 
     |, СуммаОборотДт Дебет 
     |, СуммаОборотКт Кредит 
     |, СуммаКонечныйОстаток СуммаКон
     |, ВалютнаяСуммаНачальныйОстаток  ВалНач
     |, ВалютнаяСуммаОборот ВалСумма
     |, ВалютнаяСуммаКонечныйОстаток ВалКон
     |, Журнал.IDDOC [Документ $Документ.РасходнаяНакладнаяР]
     |, Журнал.IDDOCdef ВидДок
     |, Журнал.DOCNO НомерДок
     |  FROM $БИОстаткиОбороты.Основной(:НачДата, :КонДата~,
     |      Документ,
     |      ,,
     |      ,(Субконто1),
     |      Счет IN (SELECT val FROM #accs)
     |      AND (Субконто1  = :ВыбКлиент)
     |      AND (Субконто2  = :ВыбДоговор)
     |) БИОстаткиОбороты
     |LEFT OUTER JOIN _1SJOURN AS Журнал With (NOLOCK) ON БИОстаткиОбороты.ПозицияДокумента = Журнал.DATE_TIME_IDDOC
     |ORDER BY
     |БИОстаткиОбороты.ПозицияДокумента
     |";
     
     рс.УстановитьТекстовыйПараметр("НачДата",НачДата);
     рс.УстановитьТекстовыйПараметр("КонДата",КонДата);
     рс.УложитьСписокОбъектов(СписокВыбранныхСчетов, "#accs", "Основной");
     рс.УстановитьТекстовыйПараметр("ВыбКлиент",Контрагент);
     Если ПустоеЗначение(Договор) = 1 Тогда
           ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "AND (Субконто2  = :ВыбДоговор)", "");
     ИначеЕсли Договор.ЭтоГруппа() = 1 Тогда
           ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "AND (Субконто2  = :ВыбДоговор)", "AND (Субконто2 IN (SELECT val FROM #ВыбДоговор))");
           рс.УложитьСписокОбъектов(Договор, "#ВыбДоговор", "Договоры");
     Иначе
           рс.УстановитьТекстовыйПараметр("ВыбДоговор",Договор);
     КонецЕсли;
     
     тз = рс.ВыполнитьИнструкцию(ТекстЗапроса);
     
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #244 - 14. Июля 2014 :: 06:08
Печать  
На первый взгляд ничего особо критичного. Нужно добавить отбор по разделителю учёта, если разделитель в конфигурации определён. Можно убрать группировку по субконто и соединение с журналом, а документ-регистратор движения получать из полей ВТ ПозицияДокумента и ВидДокумента.
Вообще штатные бухзапросы тяжело обогнать, если не нужна аналитика по группам счетов и по субконто.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
vinogradoff
Full Member
***
Отсутствует



Сообщений: 107
Зарегистрирован: 06. Февраля 2010
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #245 - 14. Июля 2014 :: 11:52
Печать  
Условие по счету отнести в УсловиеСчета. Или на скорость не влияет?
И смущает Цитата:
(Субконто1)
вроде ж там должны быть через зпт ВидСубконто какие хочешь использовать (или у Дмитрий Д. вид субконто называется Субконто1)?
И, собсна, если использовать только одно субконто, то взлетит ли условие Цитата:
AND (Субконто2  = :ВыбДоговор)
, когда не пустоезначение выбдоговор?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #246 - 14. Июля 2014 :: 13:17
Печать  
vinogradoff писал(а) 14. Июля 2014 :: 11:52:
Условие по счету отнести в УсловиеСчета. Или на скорость не влияет?

Если нет отбора по группам счетов и не включен в конфигурации отбор по счетам, не влияет.

vinogradoff писал(а) 14. Июля 2014 :: 11:52:
И смущает Цитата:
(Субконто1)
вроде ж там должны быть через зпт ВидСубконто какие хочешь использовать (или у Дмитрий Д. вид субконто называется Субконто1)?

Можно по видам, можно номерам. Читай инструкцию. Улыбка

vinogradoff писал(а) 14. Июля 2014 :: 11:52:
И, собсна, если использовать только одно субконто, то взлетит ли условие Цитата:
AND (Субконто2  = :ВыбДоговор)
, когда не пустоезначение выбдоговор?

Группировка выполняется уже после наложения условий.  Круглые глаза
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
vinogradoff
Full Member
***
Отсутствует



Сообщений: 107
Зарегистрирован: 06. Февраля 2010
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #247 - 16. Июля 2014 :: 05:13
Печать  
berezdetsky писал(а) 14. Июля 2014 :: 13:17:
Группировка выполняется уже после наложения условий.  Круглые глаза


т.е. можно указать использование только по одного субконто, но при этом делать отбор по второму?
  
Наверх
 
IP записан
 
Дмитрий Д.
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 07. Апреля 2013
Re: Прямые запросы к бухгалтерским итогам
Ответ #248 - 20. Декабря 2014 :: 13:32
Печать  
Здравствуйте!  нужно выполнить запрос из 8 к 7  и получить след. инфу:
выбрать товары с количеством и ценой из расходных накладных по опред. клиенту (по инн), и себестоимость списанного товара (из проводок по сч 41).  Сделал запрос через внешний источник данных, все работает, но тупит капец. Видимо не попал в индекс. Как можно ускорить этот запрос? использовать внешние источники не принципиально, можно и 1сpp (если его можно юзать из 8-ки) и ado



"ВЫБРАТЬ
                    |      РасходнаяНакладнаяР.Ссылка КАК РасхНакл,
                    |      ВЫРАЗИТЬ(ЖурналДокументов.DATE_TIME_IDDOC КАК СТРОКА(8)) КАК ДатаДок,
                    |      ЖурналДокументов.DOCNO КАК НомерДок,
                    |      Контрагенты.DESCR КАК Контрагент,
                    |      РасходнаяНакладнаяРМнЧ.LINENO_ КАК НомерСтроки,
                    |      РасходнаяНакладнаяРМнЧ.SP283 КАК Товар,
                    |      Номенклатура.DESCR КАК ТоварDESCR,
                    |      Номенклатура.SP47792 КАК ТоварКодТорговли,
                    |      РасходнаяНакладнаяРМнЧ.SP48636 КАК Партия,
                    |      РасходнаяНакладнаяРМнЧ.SP284 КАК Количество,
                    |      РасходнаяНакладнаяРМнЧ.SP285 КАК Цена,
                    |      ЕСТЬNULL(ТаблицаПроводок.SUM_, 0) КАК Себестоимость,
                    |      ЕСТЬNULL(ТаблицаПроводок.AMOUNT, 0) КАК СебестоимостьКолво
                    |ИЗ
                    |      ВнешнийИсточникДанных.Бух7.Таблица.РасходнаяНакладнаяР КАК РасходнаяНакладнаяР
                    |            ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.Бух7.Таблица.Контрагенты КАК Контрагенты
                    |            ПО РасходнаяНакладнаяР.SP277 = Контрагенты.ID
                    |            ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.Бух7.Таблица.ЖурналДокументов КАК ЖурналДокументов
                    |            ПО РасходнаяНакладнаяР.IDDOC = ЖурналДокументов.IDDOC
                    |            ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.Бух7.Таблица.РасходнаяНакладнаяРМнЧ КАК РасходнаяНакладнаяРМнЧ
                    |            ПО РасходнаяНакладнаяР.IDDOC = РасходнаяНакладнаяРМнЧ.IDDOC
                    |            ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.Бух7.Таблица.Номенклатура КАК Номенклатура
                    |            ПО (РасходнаяНакладнаяРМнЧ.SP283 = Номенклатура.ID)
                    |            ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.Бух7.Таблица.ТаблицаПроводок КАК ТаблицаПроводок
                    |            ПО (РасходнаяНакладнаяРМнЧ.IDDOC = ТаблицаПроводок.DOCID)
                    |                  И (РасходнаяНакладнаяРМнЧ.SP283 = ТаблицаПроводок.KTSC0)
                    |                  И (РасходнаяНакладнаяРМнЧ.SP48636 = ТаблицаПроводок.KTSC2)
                    |                  И (ТаблицаПроводок.ACCDTID = ""    64   "")
                    |ГДЕ
                    |      Контрагенты.SP126 = &ИНН
                    |      И (ВЫРАЗИТЬ(ЖурналДокументов.DATE_TIME_IDDOC КАК СТРОКА(8))) >= &НачПериода
                    |      И (ВЫРАЗИТЬ(ЖурналДокументов.DATE_TIME_IDDOC КАК СТРОКА(8))) <= &КонПериода";
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямые запросы к бухгалтерским итогам
Ответ #249 - 22. Декабря 2014 :: 06:47
Печать  
Для начала убери ВЫРАЗИТЬ() и замени ЖурналДокументов.IDDOC на правые 9 символов от DATE_TIME_IDDOC. Дальше смотри план выполнения в профайлере.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Дмитрий Д.
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 07. Апреля 2013
Re: Прямые запросы к бухгалтерским итогам
Ответ #250 - 22. Декабря 2014 :: 10:31
Печать  
спасибо, буду пробовать
  
Наверх
 
IP записан
 
Анатолий
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 25
Зарегистрирован: 18. Сентября 2008
Re: Прямые запросы к бухгалтерским итогам
Ответ #251 - 08. Января 2015 :: 14:21
Печать  
и 7.7 SQL или DBF?
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать