Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
17 апр 2024, 01:30

Помогите разобраться в запросе

Автор макс, 01 сен 2010, 05:04

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

макс

Запрос.Текст =
   "ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |   СостоянияОСОрганизаций.ОсновноеСредство КАК ОсновноеСредство
   |ПОМЕСТИТЬ
   |   СнятыеСУчета
   |ИЗ
   |   РегистрСведений.СостоянияОСОрганизаций КАК СостоянияОСОрганизаций
   |ГДЕ
   |   СостоянияОСОрганизаций.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияОС.СнятоСУчета) И
   |   СостоянияОСОрганизаций.ДатаСостояния < &Период И
   |   СостоянияОСОрганизаций.Организация = &Организация " + УсловиеПоОС + "
   |ИНДЕКСИРОВАТЬ ПО
   |   ОсновноеСредство
   |;
   |
   |/////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |   НачислениеАмортизацииБухгалтерскийУчетСрезПоследних.ОсновноеСредство                КАК ОсновноеСредство,
   |   ПРЕДСТАВЛЕНИЕ(НачислениеАмортизацииБухгалтерскийУчетСрезПоследних.ОсновноеСредство) КАК ОсновноеСредствоПредставление,
   |   НачислениеАмортизацииБухгалтерскийУчетСрезПоследних.ОсновноеСредство.Код            КАК Код
   |ПОМЕСТИТЬ
   |   СписокОС
   |ИЗ
   |   РегистрСведений.НачислениеАмортизацииОСБухгалтерскийУчет.СрезПоследних(&НачалоПериода, Организация = &Организация " + УсловиеПоОС + "
   |   И ОсновноеСредство НЕ В (ВЫБРАТЬ ОсновноеСредство ИЗ СнятыеСУчета)) КАК НачислениеАмортизацииБухгалтерскийУчетСрезПоследних   
   |ГДЕ
   |   НачислениеАмортизацииБухгалтерскийУчетСрезПоследних.НачислятьАмортизацию = ИСТИНА
   |ИНДЕКСИРОВАТЬ ПО
   |   ОсновноеСредство
   |;
   |
   |/////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |   ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство            КАК ОсновноеСредство,
   |   ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ИнвентарныйНомер            КАК ИнвентарныйНомер,
   |   ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.СпособНачисленияАмортизации КАК СпособНачисленияАмортизации,
   |   ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ПервоначальнаяСтоимость     КАК ПервоначальнаяСтоимость,
   |   ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ПараметрВыработки           КАК ПараметрВыработки
   |ПОМЕСТИТЬ
   |   ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних
   |ИЗ
   |   РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(&НачалоПериода, Организация = &Организация) КАК ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних
   |   ВНУТРЕННЕЕ СОЕДИНЕНИЕ СписокОС
   |   ПО СписокОС.ОсновноеСредство = ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство   
   |ГДЕ
   |   ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ПорядокПогашенияСтоимости = ЗНАЧЕНИЕ(Перечисление.ПорядокПогашенияСтоимостиОС.НачислениеАмортизации)
   |ИНДЕКСИРОВАТЬ ПО
   |   ОсновноеСредство
   |;
   |
   |/////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |   ВыработкаОСОбороты.ОсновноеСредство  КАК ОсновноеСредство,
   |   ВыработкаОСОбороты.ПараметрВыработки КАК ПараметрВыработки,
   |   ВыработкаОСОбороты.КоличествоОборот  КАК ОбъемВыработки
   |ПОМЕСТИТЬ
   |   ВыработкаОС
   |ИЗ
   |   РегистрНакопления.ВыработкаОС.Обороты(&НачалоПериода, &КонецПериода) КАК ВыработкаОСОбороты
   |   ВНУТРЕННЕЕ СОЕДИНЕНИЕ СписокОС
   |   ПО СписокОС.ОсновноеСредство = ВыработкаОСОбороты.ОсновноеСредство   
   |   ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних
   |   ПО ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ПараметрВыработки = ВыработкаОСОбороты.ПараметрВыработки   
   |   И ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство = ВыработкаОСОбороты.ОсновноеСредство
   |ИНДЕКСИРОВАТЬ ПО
   |   ОсновноеСредство
   |;
   |
   |/////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |   ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство                            КАК ОсновноеСредство,
   |   ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.СрокИспользованияДляВычисленияАмортизации   КАК СрокИспользованияДляВычисленияАмортизации,
   |   ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.СтоимостьДляВычисленияАмортизации           КАК СтоимостьДляВычисленияАмортизации,
   |   ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.ОбъемПродукцииРаботДляВычисленияАмортизации КАК ОбъемПродукцииРаботДляВычисленияАмортизации,
   |   ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.КоэффициентАмортизации                      КАК КоэффициентАмортизации,
   |   ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.КоэффициентУскорения                        КАК КоэффициентУскорения,
   |   ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.Период                                      КАК Период
   |ПОМЕСТИТЬ
   |   ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних
   |ИЗ
   |   РегистрСведений.ПараметрыАмортизацииОСБухгалтерскийУчет.СрезПоследних(&НачалоПериода, Организация = &Организация) КАК ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних
   |   ВНУТРЕННЕЕ СОЕДИНЕНИЕ СписокОС
   |   ПО СписокОС.ОсновноеСредство = ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство   
   |ИНДЕКСИРОВАТЬ ПО
   |   ОсновноеСредство
   |;
   |
   |/////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |   ГрафикиАмортизацииБухгалтерскийУчетСрезПоследних.ОсновноеСредство  КАК ОсновноеСредство,
   |   ГрафикиАмортизацииБухгалтерскийУчетСрезПоследних.ГрафикАмортизации КАК ГрафикАмортизации
   |ПОМЕСТИТЬ
   |   ГрафикиАмортизацииБухгалтерскийУчетСрезПоследних
   |ИЗ
   |   РегистрСведений.ГрафикиАмортизацииОСБухгалтерскийУчет.СрезПоследних(&НачалоПериода, Организация = &Организация) КАК ГрафикиАмортизацииБухгалтерскийУчетСрезПоследних
   |   ВНУТРЕННЕЕ СОЕДИНЕНИЕ СписокОС
   |   ПО СписокОС.ОсновноеСредство = ГрафикиАмортизацииБухгалтерскийУчетСрезПоследних.ОсновноеСредство   
   |ИНДЕКСИРОВАТЬ ПО
   |   ОсновноеСредство
   |;
   |
   |/////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |   СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство                      КАК ОсновноеСредство,
   |   СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчетСрезПоследних.СпособыОтраженияРасходовПоАмортизации КАК СпособыОтраженияРасходовПоАмортизации
   |ПОМЕСТИТЬ
   |   СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчетСрезПоследних
   |ИЗ
   |   РегистрСведений.СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчет.СрезПоследних(&НачалоПериода, Организация = &Организация) КАК СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчетСрезПоследних
   |   ВНУТРЕННЕЕ СОЕДИНЕНИЕ СписокОС
   |   ПО СписокОС.ОсновноеСредство = СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство   
   |ИНДЕКСИРОВАТЬ ПО
   |   ОсновноеСредство, СпособыОтраженияРасходовПоАмортизации
   |;
   |
   |/////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |   СпособыОтраженияРасходовПоАмортизацииСпособы.Ссылка КАК СпособыОтраженияРасходовПоАмортизации,
   |   КОЛИЧЕСТВО(СпособыОтраженияРасходовПоАмортизацииСпособы.Коэффициент) КАК КоличествоКоэффициентов
   |ПОМЕСТИТЬ
   |   СпособыОтраженияРасходовПоАмортизацииСпособы
   |ИЗ
   |   Справочник.СпособыОтраженияРасходовПоАмортизации.Способы КАК СпособыОтраженияРасходовПоАмортизацииСпособы
   |ГДЕ
   |   СпособыОтраженияРасходовПоАмортизацииСпособы.Ссылка   В (ВЫБРАТЬ РАЗЛИЧНЫЕ СпособыОтраженияРасходовПоАмортизации ИЗ СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчетСрезПоследних)
   |СГРУППИРОВАТЬ ПО
   |   СпособыОтраженияРасходовПоАмортизацииСпособы.Ссылка   
   |ИНДЕКСИРОВАТЬ ПО
   |   СпособыОтраженияРасходовПоАмортизации
   |;
   |
   |/////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |   СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследних.ОсновноеСредство          КАК ОсновноеСредство,
   |   СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследних.СчетУчета                 КАК СчетУчета,
   |   СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследних.СчетНачисленияАмортизации КАК СчетНачисленияАмортизации
   |ПОМЕСТИТЬ
   |   СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследних
   |ИЗ
   |   РегистрСведений.СчетаБухгалтерскогоУчетаОС.СрезПоследних(&КонецПериода, Организация = &Организация) КАК СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследних
   |   ВНУТРЕННЕЕ СОЕДИНЕНИЕ СписокОС
   |   ПО СписокОС.ОсновноеСредство = СчетаБухгалтерскогоУчетаОсновныхСредствСрезПоследних.ОсновноеСредство   
   |ИНДЕКСИРОВАТЬ ПО
   |   ОсновноеСредство
   |";

макс

я обычно кликаю правой кнопкой вызываю конструктор запроса, и там разбираюсь, а этот не кликается, пишет, не найден текст запроса, кликается только самый верхний кусочек, вызывается конструктор, а там только часть запроса, подскажите что делать?

Vit1501

конструктор вещьь конечно удобная, но надо учиться и просто текст запроса видеть. К тому же у тебя запрос сотоит из нескольких простых пакетов, которые легко читаются. Например первый пакет у тебя выбирает поле "основные средства" из регистра сведений "СостоянияОСОрганизаций" с условиями указанными после слова "где" помещает результат во временную таблицу "СнятыеСУчета" и индексирует полученную таблицу. Аналогично можешь посмотреть все оставшиеся пакеты

макс

Почему он не открывается через конструктор?

Vit1501

потому что текст не целый, он складывается из нескольких кусков с помощью оператора "+" если вместо всех переменных подставить текст (например вместо "УсловиеПоОС"), то все откроется

макс

можешь описать как работает 1 пакет поэтапно, ато я не пойму как работают временные таблицы

макс

вопрос, вот эти пакеты они объединяют полученные записи в один результат?

Vit1501

каждый пакет- это отдельный запрос. При вызове метода запроса Выполнить() все пакеты выполняются последовательно и возвращается результат последнего. Что касается временных таблиц, то это отдельный объект платформы 1с. Этими таблицами управляет МенеджерВременныхТаблиц. Создается конструктором Новый МенеджерВременныхТаблиц. Подключается к запросу через одноименный метод и после этого в запросе можно выбирать данные не только из таблиц объектов типа справочники и документы, но и из всех ВременныхТаблиц которые содержатся в подключенном к запросу менеджере временных таблиц. Удобно использовать когда надо сначало получить какую то промежуточную таблицу запросом, а потом из результата еще раз из промежуточного варианта запросом делать выборку.

макс

можно как нить проследить в табле за ходом действий?

макс

Будь добр, можешь постепенно описать, как я понимаю,
сначала выбираем основные средства  с регистраСведений помещаем его в менеджерВременныхТаблиц, потом след пакет, его данные в менеджерВременныхТаблиц, и так далее, только непойму для чего нужны временныеТаблицы, типо так проще,  как отследить что во временных таблицах?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск