Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
17 Дек 2017, 22:37
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Вопрос про запрос  (Прочитано 7719 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Потемкин

  • *
  • Сообщений: 12
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-02-10
  • Сайт: 
1/4 года как уж в  1С8, но вот не могу понять эту строку запроса(фрагмент):
ГДЕ 1 В (Выбрать Первые 1 1 Из РегистрБухгалтерии.Хозрасчетный.Субконто КАК Суб1 
ГДЕ Суб1.Регистратор = ДвиженияССубконто.Регистратор И Суб1.НомерСтроки = ДвиженияССубконто.НомерСтроки И  Суб1.Вид = &Вид1)
Неясно что значит ГДЕ 1 В..., в предыдущих строках запроса нигде нет этой единицы.
На всякий случай,  вот весь запрос(Это встроенный отчет "карточка субконто"):
ВЫБРАТЬ РАЗРЕШЕННЫЕ
НАЧАЛОПЕРИОДА(ДвиженияССубконто.Период, ДЕНЬ) КАК НачПериода,
ДвиженияССубконто.Период КАК Период,
ДвиженияССубконто.Регистратор КАК Регистратор,
ДвиженияССубконто.Содержание КАК Содержание,
ПРЕДСТАВЛЕНИЕ(ДвиженияССубконто.Регистратор) КАК РегистраторПредставление,
ДвиженияССубконто.НомерСтроки КАК НомерСтроки,
ДвиженияССубконто.СчетДт.Вид ВидСчетаДт,
ДвиженияССубконто.СчетКт.Вид ВидСчетаКт,
ДвиженияССубконто.СчетДт.Валютный СчетВалютныйДт,
ДвиженияССубконто.СчетКт.Валютный СчетВалютныйКт,
ДвиженияССубконто.СчетДт.Количественный СчетКоличественныйДт,
ДвиженияССубконто.СчетКт.Количественный СчетКоличественныйКт,
ДвиженияССубконто.СчетДт.Представление КАК СчетДтПредставление,
ДвиженияССубконто.СчетКт.Представление КАК СчетКтПредставление,
ДвиженияССубконто.КоличествоДт,
ДвиженияССубконто.КоличествоКт,
ПРЕДСТАВЛЕНИЕ(ДвиженияССубконто.СубконтоДт1) КАК СубконтоДт1Представление,
ПРЕДСТАВЛЕНИЕ(ДвиженияССубконто.СубконтоДт2) КАК СубконтоДт2Представление,
ПРЕДСТАВЛЕНИЕ(ДвиженияССубконто.СубконтоДт3) КАК СубконтоДт3Представление,
ПРЕДСТАВЛЕНИЕ(ДвиженияССубконто.СубконтоКт1) КАК СубконтоКт1Представление,
ПРЕДСТАВЛЕНИЕ(ДвиженияССубконто.СубконтоКт2) КАК СубконтоКт2Представление,
ПРЕДСТАВЛЕНИЕ(ДвиженияССубконто.СубконтоКт3) КАК СубконтоКт3Представление,
ДвиженияССубконто.ВалютаДт.Представление КАК ВалютаДт,
ДвиженияССубконто.ВалютаКт.Представление КАК ВалютаКт,
ДвиженияССубконто.ВалютнаяСуммаДт,
ДвиженияССубконто.ВалютнаяСуммаКт,
ДвиженияССубконто.Регистратор.Дата КАК РегистраторДата,
ОстаткиИОбороты.СуммаНачальныйОстатокДт,
ОстаткиИОбороты.СуммаНачальныйОстатокКт,
ОстаткиИОбороты.СуммаКонечныйОстатокДт,
ОстаткиИОбороты.СуммаКонечныйОстатокКт,
ОстаткиИОбороты.СуммаОборотДт КАК СуммаОборотДт,
ОстаткиИОбороты.СуммаОборотКт КАК СуммаОборотКт,
ОстаткиИОбороты.КоличествоОборотДт,
ОстаткиИОбороты.КоличествоОборотКт,
ОстаткиИОбороты.ВалютнаяСуммаОборотДт,
ОстаткиИОбороты.ВалютнаяСуммаОборотКт
ИЗ
РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&ДатаНач, &ДатаКон, Организация = &Организация  И Субконто1 В ИЕРАРХИИ(&ПараметрОтбора0)) КАК ДвиженияССубконто

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

УПОРЯДОЧИТЬ ПО
НачПериода,
Период,
РегистраторДата,
Регистратор,
НомерСтроки
ИТОГИ
СУММА(СуммаОборотДт),
СУММА(СуммаОборотКт),
СУММА(СуммаНачальныйОстатокДт),
СУММА(СуммаНачальныйОстатокКт),
СУММА(СуммаКонечныйОстатокДт),
СУММА(СуммаКонечныйОстатокКт)
ПО
Общие,
НачПериода
 
 
  Процедура СформироватьОтчет(ДокументРезультат, ПоказыватьЗаголовок, ВысотаЗаголовка)
 
  ВыборкаОбщие = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Общие");
ВыборкаОбщие.Следующий();

ВыборкаПоПериодам = ВыборкаОбщие.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "НачПериода");
ВыборкаПоПериодам.Следующий();

ВыборкаДетальная = ВыборкаПоПериодам.Выбрать(ОбходРезультатаЗапроса.Прямой);
ВыборкаДетальная.Следующий();
  .
  СтруктураПараметров = Новый Структура();
СтруктураПараметров.Вставить("ОбластьШапкаТаблицы",          ОблШапкаТаблицы);
СтруктураПараметров.Вставить("ОбластьЗаголовокПроводки",     Макет.ПолучитьОбласть("ЗаголовокПроводки"));
СтруктураПараметров.Вставить("ОбластьОбороты",               Макет.ПолучитьОбласть("Обороты"));
СтруктураПараметров.Вставить("ОбластьСтрокаСубконто",        Макет.ПолучитьОбласть("СтрокаСубконто"));
СтруктураПараметров.Вставить("ОбластьКоличествоПроводки",    Макет.ПолучитьОбласть("КоличествоПроводки"));
СтруктураПараметров.Вставить("ОбластьВалютнаяСуммаПроводки", Макет.ПолучитьОбласть("ВалютнаяСуммаПроводки"));

 
  Если Не ЗначениеЗаполнено(Период) Тогда
// без разбивки по периодам
ВывестиПроводки(ДокументРезультат, ВыборкаОбщие, СтруктураПараметров)
    {
    ОблЗаголовокПроводки = СтруктураПараметров.ОбластьЗаголовокПроводки;

    ВыборкаПроводок = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Общие").Выбрать(ОбходРезультатаЗапроса.Прямой);
    ВывестиСубконто(ДокументРезультат, ВыборкаПроводок, СтруктураПараметров, Расшифровка)
    {
    ОблСубконто = СтруктураПараметров.ОбластьСтрокаСубконто;

Для н=1 По МетаданныеПланСчетов.МаксКоличествоСубконто Цикл
Содержание = ВыборкаПроводок[СтрЗаменить("СубконтоДт{н}Представление", "{н}", Строка(н))];
Если ЗначениеЗаполнено(Содержание) Тогда
ОблСубконто.Параметры.Содержание = Содержание;
ОблСубконто.Параметры.Расшифровка = Расшифровка;
ДокументРезультат.Вывести(ОблСубконто, ВыборкаПроводок.Уровень());
КонецЕсли;
КонецЦикла;

Для н=1 По МетаданныеПланСчетов.МаксКоличествоСубконто Цикл
Содержание = ВыборкаПроводок[СтрЗаменить("СубконтоКт{н}Представление", "{н}", Строка(н))];
Если ЗначениеЗаполнено(Содержание) Тогда
ОблСубконто.Параметры.Содержание = Содержание;
ОблСубконто.Параметры.Расшифровка = Расшифровка;
ДокументРезультат.Вывести(ОблСубконто, ВыборкаПроводок.Уровень());
КонецЕсли;
КонецЦикла;

    }
    }
   
    Иначе
// с разбивкой по периодам
ФорматПериода = БухгалтерскиеОтчеты.ПолучитьСтрокуФорматаПериода(Период);

ВыборкаПоПериодам = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Общие").Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "НачПериода");

Пока ВыборкаПоПериодам.Следующий() Цикл

ВывестиПодИтог(ДокументРезультат, ВыборкаПоПериодам, СтруктураПараметров, Формат(ВыборкаПоПериодам.НачПериода, ФорматПериода));

ВывестиПроводки(ДокументРезультат, ВыборкаПоПериодам, СтруктураПараметров);

КонецЦикла;

КонецЕсли;
 
  ВывестиПодИтог(ДокументРезультат, ВыборкаОбщие, СтруктураПараметров, "Итого за период")
  {
  ОблИтог = СтруктураПараметров.ОбластьОбороты;
ОблИтог.Параметры.ОписательПериода = ОписательПериода;
ОблИтог.Параметры.СуммаОборотДт = ВыборкаОбщие.СуммаОборотДт;
ОблИтог.Параметры.СуммаОборотКт = ВыборкаОбщие.СуммаОборотКт;
ДокументРезультат.Вывести(ОблИтог, ВыборкаОбщие.Уровень());

  }

  ВыборкаПоПериодам.Сбросить();

Пока ВыборкаПоПериодам.Следующий() Цикл

ВыборкаДетальная = ВыборкаПоПериодам.Выбрать(ОбходРезультатаЗапроса.Прямой);

Пока ВыборкаДетальная.Следующий() Цикл
ОблСальдоПараметры.СуммаСальдоДт = ВыборкаДетальная.СуммаКонечныйОстатокДт;
ОблСальдоПараметры.СуммаСальдоКт = ВыборкаДетальная.СуммаКонечныйОстатокКт;
КонецЦикла;
КонецЦикла;

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


Оффлайн Потемкин

  • *
  • Сообщений: 12
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-02-10
  • Сайт: 
Ой, все кроме запроса это хлам. Случайно попало... :dfbsdfbsdf:

Оффлайн Tatitutu

Запрос работает ? На форме реквизита с индетификатором 1 нет ?

*  MAGAZKA - лучшая программа для розничного магазина (с) *

Оффлайн Verba

  • *
  • Сообщений: 10
  • РЕПУТАЦИЯ: 1
  • КПД: 10%
  • Регистрация: 2010-03-23
  • Сайт: 
1 - так названо поле во вложенном запросе в условии, накладываемом на таблицу ДвиженияССубконто.
То есть выбирается первое субконто. Ну вот так взяли и назвали ))))

Оффлайн Verba

  • *
  • Сообщений: 10
  • РЕПУТАЦИЯ: 1
  • КПД: 10%
  • Регистрация: 2010-03-23
  • Сайт: 
Вот так понятнее будет:
ТекущееОграничений = "";
   НомерОграничения = 1;
   
   Для Каждого ЭлементМассиваСубконто Из МассивСубконто Цикл
      
      Если Не ПустаяСтрока(ТекущееОграничений) Тогда
         
         ТекущееОграничений = ТекущееОграничений + Символы.ПС + "И" + Символы.ПС;
         
      КонецЕсли;
      
      АлиасТаблицыОграничения = "Суб" + Строка(НомерОграничения);
      ЗначениеТаблицыОграничения =  "Вид" + Строка(НомерОграничения);
      
      ТекущееОграничений = ТекущееОграничений + " 1 В (Выбрать Первые 1 1 Из РегистрБухгалтерии." + ИмяРегистраБухгалтерии + ".Субконто КАК " + АлиасТаблицыОграничения + "
         |ГДЕ " + АлиасТаблицыОграничения + ".Регистратор = " + ИмяТаблицыСвязки + ".Регистратор
         |      И " + АлиасТаблицыОграничения + ".НомерСтроки = " + ИмяТаблицыСвязки + ".НомерСтроки
         |      И  " + АлиасТаблицыОграничения + ".Вид = &" + ЗначениеТаблицыОграничения + ")";
         
      Запрос.УстановитьПараметр(ЗначениеТаблицыОграничения + Строка(НомерОграничения), ЭлементМассиваСубконто);   
         
      НомерОграничения = НомерОграничения + 1;
      
   КонецЦикла;
Только здесь идет перебор всех возможных субконто, а у вас ограничили первым.
Дописка - исправление похоже.

Оффлайн Потемкин

  • *
  • Сообщений: 12
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-02-10
  • Сайт: 
1 - так названо поле во вложенном запросе в условии, накладываемом на таблицу ДвиженияССубконто.
То есть выбирается первое субконто. Ну вот так взяли и назвали ))))
Если правильно понял, то 1=Суб1.
и еще, этот вложенный запрос сродни внутреннему соединению, за тем исключением что выбирается только ДвиженияССубконто?
Вот альтернативный вариант (может быть):
ДвиженияССубконто.СчетДт.Валютный СчетВалютныйДт,
ДвиженияССубконто.СчетКт.Валютный СчетВалютныйКт,
ДвиженияССубконто.СчетДт.Количественный СчетКоличественныйДт,
ДвиженияССубконто.СчетКт.Количественный СчетКоличественныйКт,
ДвиженияССубконто.СчетДт.Представление КАК СчетДтПредставление,
ДвиженияССубконто.СчетКт.Представление КАК СчетКтПредставление,
ДвиженияССубконто.КоличествоДт,
ДвиженияССубконто.КоличествоКт,
ПРЕДСТАВЛЕНИЕ(ДвиженияССубконто.СубконтоДт1) КАК СубконтоДт1Представление,
ПРЕДСТАВЛЕНИЕ(ДвиженияССубконто.СубконтоДт2) КАК СубконтоДт2Представление,
ПРЕДСТАВЛЕНИЕ(ДвиженияССубконто.СубконтоДт3) КАК СубконтоДт3Представление,
ПРЕДСТАВЛЕНИЕ(ДвиженияССубконто.СубконтоКт1) КАК СубконтоКт1Представление,
ПРЕДСТАВЛЕНИЕ(ДвиженияССубконто.СубконтоКт2) КАК СубконтоКт2Представление,
ПРЕДСТАВЛЕНИЕ(ДвиженияССубконто.СубконтоКт3) КАК СубконтоКт3Представление,
ДвиженияССубконто.ВалютаДт.Представление КАК ВалютаДт,
ДвиженияССубконто.ВалютаКт.Представление КАК ВалютаКт,
ДвиженияССубконто.ВалютнаяСуммаДт,
ДвиженияССубконто.ВалютнаяСуммаКт,
ДвиженияССубконто.Регистратор.Дата КАК РегистраторДата,
ОстаткиИОбороты.СуммаНачальныйОстатокДт,
ОстаткиИОбороты.СуммаНачальныйОстатокКт,
ОстаткиИОбороты.СуммаКонечныйОстатокДт,
ОстаткиИОбороты.СуммаКонечныйОстатокКт,
ОстаткиИОбороты.СуммаОборотДт КАК СуммаОборотДт,
ОстаткиИОбороты.СуммаОборотКт КАК СуммаОборотКт,
ОстаткиИОбороты.КоличествоОборотДт,
ОстаткиИОбороты.КоличествоОборотКт,
ОстаткиИОбороты.ВалютнаяСуммаОборотДт,
ОстаткиИОбороты.ВалютнаяСуммаОборотКт

ИЗ
РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&ДатаНач, &ДатаКон, Организация = &Организация  И Субконто1 В ИЕРАРХИИ(&ПараметрОтбора0)) КАК ДвиженияССубконто

ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Запись, , , &МассивСубконто, Организация = &Организация  И Субконто1 В ИЕРАРХИИ(&ПараметрОтбора0)) КАК ОстаткиИОбороты
ПО ДвиженияССубконто.Регистратор = ОстаткиИОбороты.Регистратор
И ДвиженияССубконто.НомерСтроки = ОстаткиИОбороты.НомерСтроки
//этот кусок по идее альтернатива "где 1 В..."
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Субконто КАК Суб1
ПО Суб1.Регистратор = ДвиженияССубконто.Регистратор
И Суб1.НомерСтроки = ДвиженияССубконто.НомерСтроки
И  Суб1.Вид = &Вид1
УПОРЯДОЧИТЬ ПО
НачПериода,
Период,
РегистраторДата,
Регистратор,
НомерСтроки
ИТОГИ
СУММА(СуммаОборотДт),
СУММА(СуммаОборотКт),
СУММА(СуммаНачальныйОстатокДт),
СУММА(СуммаНачальныйОстатокКт),
СУММА(СуммаКонечныйОстатокДт),
СУММА(СуммаКонечныйОстатокКт)
ПО
Общие,
НачПериода
P.s: Или два "ВНУТРЕННЕЕ СОЕДИНЕНИЕ" нельзя применять, поправьте если ошибаюсь

Оффлайн Потемкин

  • *
  • Сообщений: 12
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-02-10
  • Сайт: 
А вот еще трабла. В конструкторе запросов из раздела "Таблицы и поля" вибираю Хозрасчетный.Обороты из "База данных", но когда он попадает в область "Таблицы" , то пропадают некоторые поля: регистратор, номерстроки...? Help :xfbnsdfb:

Оффлайн Verba

  • *
  • Сообщений: 10
  • РЕПУТАЦИЯ: 1
  • КПД: 10%
  • Регистрация: 2010-03-23
  • Сайт: 
Как бы вам ответить...
Вы слышали про построитель запроса?
Вы знаете про параметризацию виртуальных таблиц?

Оффлайн Verba

  • *
  • Сообщений: 10
  • РЕПУТАЦИЯ: 1
  • КПД: 10%
  • Регистрация: 2010-03-23
  • Сайт: 
Извиняюсь, построитель отчета.

Оффлайн Verba

  • *
  • Сообщений: 10
  • РЕПУТАЦИЯ: 1
  • КПД: 10%
  • Регистрация: 2010-03-23
  • Сайт: 
Этот отчет, откуда взят запрос, сделан в стандартных конфах на построителе, оттуда и неронятное поле 1.
Регистратор и номер строки в полях появляются тогда, когда в параметрах виртуальной таблицы Хозрасчетный.Обороты выбрана периодичность.



Теги:
 

Возможно ли получение эталонного файла конфигурации *.cf из измененной стандартной, например (УТ 11.1, БП 3.0) или вопрос о том как убрать лишние доработки и привести конфигурацию базы максимально к стандартной после варварских "доработок"?

Автор kostyaomskРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 9
Просмотров: 9235
Последний ответ 30 Дек 2015, 22:14
от 1Cnastroika
Вопрос по РИБ "ПоОрганизации"

Автор andi_xРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 5856
Последний ответ 15 Мар 2013, 21:38
от Besart
Вопрос по "Отчеты о Розничных продажах".

Автор GerCerberРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 3294
Последний ответ 26 Июл 2010, 16:06
от crow1983
Вопрос о действии кнопки "Записать"

Автор jenya1111Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 3454
Последний ответ 06 Окт 2014, 15:23
от jenya1111
Вопрос по отчету "Материалы в эксплуатации".

Автор mitauskasРаздел Пользователям "1С - Предприятие 8"

Ответов: 3
Просмотров: 2372
Последний ответ 04 Мар 2015, 11:07
от Дмитрий@

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
145 Сообщений
AIFrame
64 Сообщений
ilyay ilyay
63 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
42 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
alexandr_ll
24 Сообщений

* Кто онлайн

  • Точка Гостей: 260
  • Точка Скрытых: 0
  • Точка Пользователей: 8
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal