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