Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Установка параметров запроса  (Прочитано 19322 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Marta_Li
Постоялец

by
Offline Offline

« : 20-07-2011 13:17 » 

То ли меня клинит, то ли что - не пойму... Вроде, совсем все просто, а результат запроса пустой при выполнении кода выходит. Хотя  через консоль запросов все тоже самое выполняется, с тем же документом, теми же остальными значениями параметров. Значит, неверно передаю Параметры в запрос? Но, вроде, все обычно, как сотни раз делала...

Код:
Процедура ТИ_ПроверкаСуммыНДСРеализации(СтруктураШапкиДокумента) Экспорт

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
   | ОборотыСписаниеТМЦ.СубконтоДт1 КАК СубконтоДт1,
   | СУММА(ОборотыСписаниеТМЦ.СуммаОборот) КАК СуммаСписания,
   | СУММА(ОборотыВыручкиОтРеализации.СуммаОборот) КАК СуммаВыручки,
   | СУММА(ОборотыНДС.СуммаОборот) КАК СуммаНДС,
   | СУММА((ОборотыВыручкиОтРеализации.СуммаОборот - ОборотыСписаниеТМЦ.СуммаОборот) * 16.67 / 100) КАК РасчетНДС,
   | СУММА(ЕСТЬNULL((ОборотыВыручкиОтРеализации.СуммаОборот - ОборотыСписаниеТМЦ.СуммаОборот) * 16.67 / 100 - ОборотыНДС.СуммаОборот, 0)) КАК Разница
   |ИЗ
   | РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&ДатаНач, &ДатаКон, Регистратор, СчетДт = &СЧЕТ90_02_1, &ВидыСубконто, СчетКт = &СЧЕТ41_01, , Организация = &Организация) КАК ОборотыСписаниеТМЦ
   | ПОЛНОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&ДатаНач, &ДатаКон, Регистратор, СчетДт = &СЧЕТ90_03, &ВидыСубконто, СчетКт = &СЧЕТ68_02_1, ,Организация = &Организация ) КАК ОборотыНДС
   | ПО ОборотыСписаниеТМЦ.СубконтоДт1 = ОборотыНДС.СубконтоДт1
   | ПОЛНОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&ДатаНач, &ДатаКон, Регистратор, СчетДт = &СЧЕТ62_01, , СчетКт = &СЧЕТ90_01_1, &ВидыСубконто, Организация = &Организация) КАК ОборотыВыручкиОтРеализации
   | ПО ОборотыСписаниеТМЦ.СубконтоДт1 = ОборотыВыручкиОтРеализации.СубконтоКт1
   |ГДЕ
   | ОборотыВыручкиОтРеализации.Регистратор = &СсылкаДокРеализации
   | И ОборотыСписаниеТМЦ.Регистратор = &СсылкаДокРеализации
   | И ОборотыНДС.Регистратор = &СсылкаДокРеализации
   |
   |СГРУППИРОВАТЬ ПО
   | ОборотыСписаниеТМЦ.СубконтоДт1";

МассивВидовСубконто = Новый Массив;
МассивВидовСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НоменклатурныеГруппы);

Запрос.УстановитьПараметр("ДатаНач", Новый Граница(СтруктураШапкиДокумента.Дата, ВидГраницы.Включая));    
Запрос.УстановитьПараметр("ДатаКон", Новый Граница(СтруктураШапкиДокумента.Дата, ВидГраницы.Включая));    
Запрос.УстановитьПараметр("СЧЕТ90_02_1", Планысчетов.Хозрасчетный.СебестоимостьПродажНеЕНВД);    
Запрос.УстановитьПараметр("СЧЕТ41_01",   Планысчетов.Хозрасчетный.ТоварыНаСкладах);    
Запрос.УстановитьПараметр("СЧЕТ62_01",   Планысчетов.Хозрасчетный.РасчетыСПокупателями);    
Запрос.УстановитьПараметр("СЧЕТ90_01_1", Планысчетов.Хозрасчетный.ВыручкаНеЕНВД);    
Запрос.УстановитьПараметр("СЧЕТ90_03",   Планысчетов.Хозрасчетный.Продажи_НДС);    
Запрос.УстановитьПараметр("СЧЕТ68_02_1", Планысчетов.Хозрасчетный.НДС);    
Запрос.УстановитьПараметр("Организация", СтруктураШапкиДокумента.Организация);    
Запрос.УстановитьПараметр("СсылкаДокРеализации", СтруктураШапкиДокумента.Ссылка);
Запрос.УстановитьПараметр("ВидыСубконто", МассивВидовСубконто);

Результат = Запрос.Выполнить();
Если НЕ Результат.Пустой() Тогда

ВыборкаЗапроса = Результат.Выбрать();

Пока ВыборкаЗапроса.Следующий() Цикл
//……………………………….
КонецЦикла;
КонецЕсли;

КонецПроцедуры

Пустой результат запроса получается, хоть ты тресни! Может, подскажет кто, где я не права?
Записан
Dest
Опытный

ru
Offline Offline

« Ответ #1 : 20-07-2011 21:54 » 

Может быть это

Код:
Запрос.УстановитьПараметр("ДатаНач", Новый Граница(СтруктураШапкиДокумента.Дата, ВидГраницы.Включая));  
Запрос.УстановитьПараметр("ДатаКон", Новый Граница(СтруктураШапкиДокумента.Дата, ВидГраницы.Включая));

Получается, что ДатаНач = ДатаКон. Хотя врятли...
Записан
Marta_Li
Постоялец

by
Offline Offline

« Ответ #2 : 21-07-2011 06:06 » 

Может быть это:
Получается, что ДатаНач = ДатаКон. Хотя врятли...

Спасибо за участие. Это причиной быть не может - я же получаю движения одного документа, т.е. ограничиваю отбор датой этого документа. Проверила на всякий случай - расширила на день период времени между ДатаНач и ДатаКон - не помогло.
Записан
Marta_Li
Постоялец

by
Offline Offline

« Ответ #3 : 21-07-2011 06:26 » 

От, чёрт! Вызываю эту процедуру в самом конце Процедуры ОбработкаПроведения() модуля док.Реализация.
Стала смотреть на наличие на этом этапе движений. Оказалось, движения все есть, но Регистратор в них еще = Неопределено. Здесь была моя ладья...
А дальше при пошаговой отладке уже все заканчивается, выходим в прогу. Куда же мне ее влепить?
Записан
Kivals
Модератор

us
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 21-07-2011 08:42 » 

ИМХО лучше отбор не по датам сделать, а по регистратору.
Попробуй самый простой запрос выполнить - попадут движения в результат?
Может движения уже заполнены, но не записаны - попробуй записать из перед вызовом запроса.

Вот например так:
Код:
  "ВЫБРАТЬ
  | ХозрасчетныйДвиженияССубконто.СубконтоДт1,
  | СУММА(ХозрасчетныйДвиженияССубконто.Сумма) КАК Сумма
  |ИЗ
  | РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(, , Регистратор = &Регистратор, , ) КАК ХозрасчетныйДвиженияССубконто
  |
  |СГРУППИРОВАТЬ ПО
  | ХозрасчетныйДвиженияССубконто.СубконтоДт1";
Записан
Marta_Li
Постоялец

by
Offline Offline

« Ответ #5 : 21-07-2011 09:14 » 

ИМХО лучше отбор не по датам сделать, а по регистратору.
Попробуй самый простой запрос выполнить - попадут движения в результат?
Может движения уже заполнены, но не записаны - попробуй записать из перед вызовом запроса.

Да, движения заполнены, но не записаны, поэтому и выдает при просмотре таблицы движений Регистратор=Неопределено на момент вызова процедуры. Что-то не пойму, где они записываются. Вызываю эту процедуру в самом конце Процедуры ОбработкаПроведения() модуля док.Реализация. Дальше по отладчику при пошаговом перемещении уже просто выхожу из конфы. Т.е. явного, типа, ЭтотОбъект.Записать() или Движения.Хозрасчетный.Записать() нету в модуле. Но они ж записываются... Я просто чего-то не знаю или совсем забыла, не сталкиваясь...
 Краснею
Записан
Kivals
Модератор

us
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 21-07-2011 09:16 » 

Записываются автоматически (видимо так настроен документ), но можешь попробовать записать их перед своей процедурой именно
Код:
Движения.Хозрасчетный.Записать();
Записан
Marta_Li
Постоялец

by
Offline Offline

« Ответ #7 : 21-07-2011 09:34 » 

Да, попробовала сразу, как только поняла, что в этом дело. Все получилось. Спасибо.
Тогда, может, натолкнете на мысль - где на документ устанавливается автоматическая запись движений ?
и не помешает ли то, что я вставила вручную дополнительно запись ЭтотОбъект.Движения.Хозрасчетный.Записать()?
В документе может быть много строк и самих документов оч.много. Не повлияет на время записи?
Спасибо за помощь.
Записан
Kivals
Модератор

us
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 21-07-2011 11:01 » 

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

* sc-20110721135756.png (11.49 Кб - загружено 6277 раз.)
Записан
Marta_Li
Постоялец

by
Offline Offline

« Ответ #9 : 21-07-2011 11:58 » 

А у меня нету такого Не понял
Версия платформы 1С:Предприятие 8.1 (8.1.13.41)


Uploaded with ImageShack.us

* СвойстваДокумента.JPG (61.11 Кб - загружено 852 раз.)
Записан
Kivals
Модератор

us
Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 21-07-2011 15:37 » 

Возможно. Значит в 8.1 это не меняется
Записан
Marta_Li
Постоялец

by
Offline Offline

« Ответ #11 : 22-07-2011 06:28 » 

Возможно. Значит в 8.1 это не меняется

Увы. Жаль Надо на 8.2 переходить.
Спасибо за помощь.
Записан
Kivals
Модератор

us
Offline Offline
Пол: Мужской

WWW
« Ответ #12 : 22-07-2011 06:35 » 

Ну тогда уже 8.2.14 изучай - она сильно отличается от всех предыдущих 8.2
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines