Переключение на Главную Страницу Страницы: 1 ... 6 7 [8] 9 10 ... 17 ОтправитьПечать
Очень популярная тема (более 25 ответов) Прямые запросы к бухгалтерским итогам (число прочтений - 124020 )
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 записан
 
Переключение на Главную Страницу Страницы: 1 ... 6 7 [8] 9 10 ... 17
ОтправитьПечать