Запросник
Разработка - Инструментарий разработчика
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Доработанная стандартная консоль запросов.
Добавленные возможности.
По работе с текстом запроса (в контекстном меню)
1. Пункт "Пропылесосить текст из модуля" - очистить текст запроса, перенесенный из программного модуля от символов "|", ";" и кавычек
2. Пункт "Получить текст для модуля" - получить текст запроса для передачи в программный модуль (добавить символы "|", ";" и кавычки)
Работа с выборками из результата запроса
На закладке "Выборки" можно настроить правила выборки данных из результата запроса.
Предусмотрено 2 режима выгрузки результата запроса в таблицу/дерево:
- Стандартная выгрузка результата - используется метод Выгрузить() результата запроса;
- По списку настроенных выборок - используется таблица настроенных выборок из результата запроса. Используется вложенный вызов метода Выбрать() к описанным выборкам из запроса. Т.е. первая выборка получается из результата запроса, а каждая последующая - выборкой из предыдущей.
Автоматическую настройку выборок можно выполнить нажав кнопку "Получить из запроса". Выборки создаются исходя из того, как они описаны в итогах запорса.
При работе с настроенными выборками становится доступным флажок "Обходить иерархические выборки рекурсивно". При установленном флажке обход иерархических выборок осуществляется рекурсивно до нижнего уровня. При снятом флажке иерархическая выборка вернет только единственный уровень иерархии результата.
В данном режиме также добавлено отображение служебной информации о записи результата: типы записей и уровни группировок.
Работа со временными таблицами
На закладке «Временные таблицы» можно посмотреть содержимое временных таблиц запроса.
В поле «Временная таблица» из выпадающего списка необходимо выбрать имя временной таблицы и нажать кнопку «Показать». В результате в табличной части будет отображено содержимое временной таблицы.
Выполнение алгоритма над результатом запроса
Для выполнения произвольного алгоритма над результатом запроса необходимо нажать кнопку "Выполнить алгоритм..." на закладке "Результат". Выполнение алгоритма возможно только если результат представлен в виде таблицы значений (режим Таблица на закладке "Результат").
В открывшемся диалоговом окне необходимо задать требуемый текст программного модуля, который будет выполнен для каждой строки таблицы результата и нажать на кнопку "Выполнить алгоритм".
При написании алгоритма для обращения к строке результата необходимо использовать выражение СтрокаРезультата.
В левой части формы отображается таблица со списком полей результата запроса. Двойной клик на строке таблицы вставит в текст алгоритма конструкцию СтрокаРезультата.[Поле], где [Поле] - имя выбранного поля.
В подменю кнопки "Выполнить алгоритм" находится дополнительный пункт "Выполнить для первой строки". При выборе этого пункта алгоритм выполняется только для первой строки результата. Этот режим рекомендуется использовать для отладки алгоритма.
Вызов консоли из текста модуля для анализа отлаживаемого запроса
Консоль запросов может также использоваться для отладки запросов в режиме отладки кода. Для этого, необходимо после описания и установки параметров запроса вставить код:
ВнешниеОбработки.Создать("Q:\1С\8.2\My_EPFs\Запросник82.epf").Отладить(Запрос);
где
"Q:\1С\8.2\My_EPFs\Запросник82.epf" - путь к консоли на локальном диске;
Запрос - отлаживаемый запрос.
В результате в режиме "1С:Предприятие" будет открыто окно консоли с загруженным в нее запросом и установленными у него параметрами.
Прочие доработки
1. Добавлен режим редактирования текста запроса в отдельном большом окне (кнопка со стрелкой в правом верхнем углу текста запроса).
2. Добавлена кнопка копирования текста запроса в буфер обмена (в нижнем правом углу текста запроса)
3. Добавлена выгрузка результата запроса в табличный документ (пункт в контекстном меню )
4. В таблице результата добавлено отображение значения NULL
5. Добавлено открытие значение ячейки результата запроса по двойному клику.
6. Отображение времени выполнения запроса в мсек и количества строк в результате.
7. Возможность работать с параметрами типа «МоментВремени» и "Граница" (кнопка «Момент времени / Граница» на закладке «Параметры»).
8. Хранение истории версий запроса.
9. Возможность создавать запросы ко всем документам и элементам всех справочников конфигурации.
10. Интерфейсные доработки.
Полное описание возможностей и порядок работы с Запросником включены в справку по нему.
Сайт Запросника: https://sites.google.com/site/vtezin/zaprosnik-1s
Вступайте в нашу телеграмм-группу Инфостарт
См. также
Разработка Инструментарий разработчика Групповая разработка (Git, хранилище) Разработчик Платные (руб)
Практический курс по работе с AI-агентами для разработчиков 1С уровня middle и senior, а также тимлидов команд: от постановки задач и передачи контекста до создания расширений, интеграций, MCP-инструментов, тестов и проверки готового решения.
50000 руб.
10.09.2026 13556 115 0
Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Разработчик Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)
Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы, интерфейс 8.5. Может выполнять свертку одновременно в несколько потоков, а также без непосредственного участия пользователя. Решение в Реестре отечественного ПО.
24900 руб.
20.08.2024 83293 432 171
Инструментарий разработчика Роли и права Запросы СКД Разработчик Руководитель проекта 1С:Предприятие 8 Платные (руб)
Инструменты для разработчиков 1С 8.3 и 8.5: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.
16500 руб.
02.09.2020 285741 1606 423
Инструментарий разработчика Разработка Администрирование веб-серверов Системный администратор Разработчик Аналитик Руководитель проекта 1С 8.3 Платные (руб)
Analyzer 1C сводит выгрузку 1С — основную конфигурацию и все расширения — в единый граф знаний. Любой запрос по связям за доли секунды, с пометками «Доб.» / «Заимств.» / «Переопределено». Новое в 2.0 — обновление поставки: сравнение и объединение версий деревом «как в Конфигураторе» с выгрузкой плана решений; поиск конфликтов из-за перехватов расширений и висячих ссылок; загрузка из бинарных .cf/.cfe; циклические зависимости. Плюс анализ влияния, запросы BSL, роли и RLS, граф вызовов. Минута на развёртывание через Docker без необходимости подключения к Интернет. Любая 1С:Предприятие 8.3+.
14000 руб.
17.04.2026 16809 63 62
Пакетная печать Печатные формы Инструментарий разработчика Разработчик 1С:Предприятие 8 Платные (руб)
Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм. Обновление версии от 21.04.26
22570 руб.
06.10.2023 44216 122 54
Инструментарий разработчика Нейросети Платные (руб)
Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданным 1С, справке синтакс-помощника и проверки синтаксиса.
15250 руб.
25.08.2025 76951 147 41
Разработка Инструментарий разработчика Разработчик Руководитель проекта 1С 8.3 Платные (руб)
Pilot 1C превращает задачу, поставленную обычными словами, в техническое задание, код на встроенном языке и сценарии проверки. Прежде чем что-то предложить, он сверяется с устройством вашей конфигурации через граф Analyzer 1C: существует ли объект, из чего он состоит, кто его вызывает, какие роли дают права. Чего найти не удалось – спрашивает, а не выдумывает. Готовый код проходит более полутора сотен проверок по справочнику языка и стандартам разработки, который приезжает вместе с продуктом. Модель – ваша: любой сервер, совместимый с программным интерфейсом OpenAI, в том числе локальный. Правки в конфигурацию Pilot не вносит – их применяет разработчик.
18300 руб.
11.09.2026 3738 5 0
Инструменты администратора БД Инструментарий разработчика Роли и права Разработчик 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)
Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.
17000 руб.
10.11.2023 28767 103 46
Процедура ВыполнитьЗапрос() предполагает наличие одного необязательного булевого параметра, место которого занимает ссылка на кнопку командной панели, что вызывает ошибку.
Методы обхода каждый выбирает для себя сам... можно проверить тип параметра, можно повесить на пункт свою процедуру, из которой уже вызвать ВыполнитьЗапрос() и т.д.
Очень надо сделать просмотр хранилищ значений. То есть если в результате есть поле типа хранилище, нужно не просто говорить о том что о но хранилище -- это понятно. Нужно его получить, попытаться определить тип и открыть или хотя бы дать какую-то доп.информацию в случае невозможности открытия.
Спасибо.
выбрать истина поместить ист;
выбрать ложь поместить лож;
выбрать * из ист объединить выбрать * из лож
1) выполняется нормально.
Однако в списке временных таблиц ни таблицы "ист", ни таблицы "лож" НЕ видно!
2) Если скормить этот запрос конструктору но вместо ПОМЕСТИТЬ написать INTO - опять же ни одной таблицы не видно!
3) Если написать "ПОМЕСТИТЬ ист // просто временная таблица", то в списке временных таблиц появится таблица "ист // просто временная таблица". Имя не верное, но содержимое отображается правильно.
4) А если написать вот так:
ПОМЕСТИТЬ
// таб;
ист //просто временная таблица;
;
то в списке временных таблиц будет таблица "// таб;"
И при попытке посмотреть ее содержимое вываливается ошибка:
"{Форма.Форма(1563)}: Ошибка при вызове метода контекста (Выполнить): {(2, 1)}: Неверное присоединение
ВременнаяТаблица = ЗапросТМП.Выполнить().Выгрузить();
по причине:
{(2, 1)}: Неверное присоединение"
А как с комментариями в запросе? ;)
У меня проблем нет - юзаю свою консоль! Чего и Вам желаю! ;)
Ток никто чего-то не пытается этого делать! ;)
{ВнешнийОтчет.РасчетЗатратНЗП(26)}: Значение не является значением объектного типа (Количество)
Если Выборка.Количество()=0 тогда
при нажатии на ок
вылетает вторая
{Форма.Форма(732)}: Ошибка при вызове метода контекста (Выполнить): {(53, 4)}: Ошибка обработки представления "РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты:Несоответствие типов (параметр номер ""2"")"
<<?>>РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериодаГраница, , , Счет В (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОсновноеПроизводство)), , ) КАК ХозрасчетныйОстаткиИОбороты
***отдельно без консоли этот запрос работает.
куда копать? конфа БУХ КОРП
если скопировать руками через буфер мой запрос и вставить его в консоль-он работает.
где-то при автоматическом перебрасывании
для режима "для отладки запросов в режиме отладки кода" глюк имхо.
вторая ошибка связанана с тем, что не передался корректно параметр "граница".
выборка количество-это из моего отчета далее по тексту. т.е она по идее не должна срабатывать..но это не Ваш косяк думаю.
а вот второе из моего вопроса (30) это касательно границы я так думаю. попробуйте передать параметр граница в какой-то свой запрос. работает?
может консоль не понимает что такое граница?
(36) Консоль действительно не понимает границ, т.к. невозможно задать такой тип на колонку в табличном поле. Научим :)
1. Открытие данных типа ХранилищеЗначения из результата запроса
2. Улучшено создание списка временных таблиц
Всем кому пригодилось - пожалуйста :)
А про ошибки все равно пишите.
Чем доделанней результат - тем радостнее всем :)
Ошибки:
1.При нажатии "Выполнить запрос", сбрасываются все изменения и нельзя отменить предыдущее действие(Ctrl+Z).
Закоментил строку (1223).
2.Добавил из стандартной автосохранение.
3.Слегка изменил интерфейс.
Неудобство: При формировании запроса по зеленой кнопке курсор улетает в начало запроса, что не заставляет заново искать проблемное место. Причем по кнопке F7 - такого не происходит
Мало, мало.... недостаточно. Если в хранилище структура -- просто пишет "Структура".
В той же Консолидации много в хранилищах -- и хрен что посмотришь.
У нас просто тоже есть свои наработки, в них сделано так:
Создана дополнительная форма "ФормаОтображенияТаблицы", на которой лежит табличное поле без колонок.
Написаны отдельные процедуры по программному формированию колонок в случае если переданный в форму параметр является Массивом, ТаблицейЗначений, СпискомЗначений, Структурой.
И затем загрузка данных в сформированные колонки.
Причем из себя же эта форма может вызываться рекурсивно (то есть например элемент массива в свою очредь является списком значений)
Советую :)
идея и код любезно предоставлены Alias :)
произвольную обработку по выборке добавлять думаю не стоит
хочется сохранить сочетание простоты, удобства и функциональности
данный инструмент предназначен для написания и отладки запросов
ну и анализа его результата
обработка результата на мой взгляд немного другая тема
Плюсег поставил, уже вовсю пользуюсь для отладки :)
Что ещё хотелось бы, но знаю как удобнее это увидеть:
Сейчас очень хорошо что написан тип пустой ссылки. То есть если пусто -- видно что из себя это пусто представляет. А бывает надо понять тип _непустого_ значения... например, если перечисление -- то какого типа. В большинстве случаев (для ссылок на документы и справочники) этот вопрос может решиться двойным кликом. И то не всегда. А для перечислений узнать тип уже нереально. Вот как бы это можно придумать поудобнее?
может быть сделать аналог настройки списка чтоб по каждой колонке можно было бы отметить флажок "выводить доп.колонку типа данных"... при этом программно добавлять колонку и рисовать в ней тип. И в контекстное меню добавить пункт "Показать тип", чтоб правой кнопкой на значении щёлкнул -- тип увидел.
Такой функционал кому-то ещё кажется нужным?
а так же размеры окон. Сделал привязку гор. разделителя по центру. окно с запросами увеличили в ширину.
В строке 1223 была проца пропылисосить или как то так. кнопка выполнить запрос.
Выкрутился из ситуации так:
1) Добавил колонку "ЭтоМассив" в параметры
2) ПередОткрытием Формы устанавливаю его в Истина (для типа Массив), преобразование в СписокЗначений отставляю
3) По кнопке выполнить заполняю параметры запроса при наличии этой галочки как Параметр.ВыгрузитьЗначения(), чтобы получился на выходе массив
4) Последний штрих - при активации левого списка (с запросами), заполняю эту галочку (оно там почему-то через [индекс] сделано)
Если это добавите - будет еще лучше )
Запрос (Query)
ВыполнитьПакет (ExecuteBatch)
Синтаксис:
ВыполнитьПакет()
Возвращаемое значение:
Тип: Массив.
Описание:
Последовательно выполняет все запросы и возвращает массив результатов для каждого запроса из пакета. Результаты помещаются в массив в последовательности расположения запросов в тексте пакета. Результатом выполнения запроса на уничтожение временной таблицы является значение Неопределено, которое также помещается в массив результатов.
только пока не понял зачем он здесь
он тащит все результаты всех запросов массива с сервера в оперативку клиента
на моей практике обычно нужен результат последнего запроса
а промежуточные временные таблицы при отладке можно посмотреть и моим вариантом
спасибо за инфу
если будет еще че интересное - кидай
особо расширять функционал не планирую, чтобы не наворотить мегамонстра
в первую очередь простота и удобство по работе и отладке запросов
думаю на след неделе выдать новый релиз
много планов уже накопилось
пока в основном по удобству работы а не по функционалу
ВЫБРАТЬ
Номенклатура.Ссылка
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Ссылка = &Номенклатура
И Номенклатура.Ссылка В ИЕРАРХИИ
(ВЫБРАТЬ
ОбязательноеОбеспечениеНоменклатуры.Номенклатура
ИЗ
РегистрСведений.ОбязательноеОбеспечениеНоменклатуры КАК ОбязательноеОбеспечениеНоменклатуры)
Название "консоль запросов + " мне лично нравилось больше.))
Таким же образом кстати заполняется параметр типа Массив, т.е. через список.
Или я не совсем понял о чем ты.
Консолей много - Запросник один ;)
Новый релиз. Обработка теперь называется Запросник, чтобы не путалась с другими консолями.
Изменено многое. Вот основные моменты:
1. Оптимизировано размещение кнопок, надписей, панелей.
2. Убраны многие лишние вопросы, предупреждения и .т.д.
3. Добавлена возможность скрыть-отобразить список запросов. При работе с одним запросом – это лишний элемент формы. При открытии Запросника с одним запросом список скрывается автоматически.
4. Изменена работа с настройкой параметров, выборок и списком предыдущих файлов запросов. Теперь это делается на панели в центре формы.
5. Удалена сводная таблица из панели результата.
Добавлено:
1. Вывод типа значения в текущей ячейке результата или временной таблицы (под таблицей результата).
2. Открытие значения ячейки по двойному клику из временной таблицы.
3. Открытие результата запроса в отдельном максимизированном окне.
4. Возможность сохранять описание к запросу (окно под списком запросов).
5. Автоматическое открытие настройки параметров если после закрытия конструктора запроса появились новые
6. При переключение режима таблица/дерево результата запроса или изменении настроек выборок запрос не выполняется заново а переформируется только его результат. Если запрос еще не выполнен – он выполнится.
P.S. Так как пререработок много, то и косяки могут быть. Заранее приношу извинения и обещаю оперативно поправлять.
делаю два запроса.
выполняю первый. заполняется ТЧ.переключаюсь. ВЫполняю второй. а потом переключаюсь опять на первый и хочу видеть результат первого. чтобы можно было выполнить по очереди два запроса и потом сравнить два запроса. а то можно видеть в результате только тот, который выполнялся последним. Создавать может еще страничку результата...как-то так.
при максимизации результата запроса он отркывается всегда в новом окне
соответственно можно сравнивать результаты как разных запросов так и например одного с разными параметрами
не забыть бы описать :)
Консоль = ВнешниеОбработки.Создать("Q:\1C\8.1\My_EPFs\КонсольЗапросов81+.epf");
Консоль.ВнешнийЗапрос = Запрос;
Форма = Консоль.ПолучитьФорму();
Форма.Открыть();
Возврат;неудобен.
Вместо него лучше сделать спец.функцию обработки и тогда можно использовать в отладчике следующий вызов
ВнешниеОбработки.Создать("Q:\1C\8.1\My_EPFs\КонсольЗапросов81+.epf").Отладить(Запрос);просто и удобно.
ЗЫ а вообще посмотри мою статью "Повышение удобства разработки", я там описал очень удобные и мощные консоли.
1. Добавлено описание
2. В окне описания добавлена автоматически формируемая строка вызова Запросника для отладки запроса.
3. Двойной клик по запросу в списке - выполнение запроса (было - открытие в максимизированном окне для редактирования)
4. отдельная нескрываемая панель работы с файлами запросов
(спасибо Grohovod)
В режиме Момент времени:
- добавлена кнопка очистки в поле редактировании ссылки на документ в режиме момента времени,
- исправлена ошибка, возникавшая при очистке ссылки на документ.
Изменен интерфейс работы со временными таблицами:
- закладка "Временные таблицы" отображается только когда в результате запроса присутствуют временные таблицы. Заголовок закладки содержит информацию о количестве временных таблиц.
- при переходе на закладку "Временные таблицы" или при выборе временной таблицы на данной закладке, открывается диалог с информацией о временных таблицах (имя таблицы, время выполнения, количество строк). Для просмотра содержимого временной таблицы необходимо дважды кликнуть на нужной строке диалога. В результате в табличной части закладки "Временные таблицы" будет отображено содержимое выбранной таблицы.
если есть желание написать обзор всех консолей, которых очень много с глубоким сравнительным анализом и подробным описанием кто-кого чем лучше или хуже - удачи в святом порыве, заодно глядишь и самую лучшую сбацаешь ;)
Консоль.ВнешнийЗапрос = Запрос;
Форма = Консоль.ПолучитьФорму();
Форма.Открыть();
Возврат;
Ужасный способ отладки
Такой мне больше нравится
ВнешниеОбработки.создать("D:\ирКонсольЗапросов_82.epf").ОткрытьДляОтладки(Запрос);
в текущем делается именно так как Вы предлагаете
P.S. строка для вызова Запросника формируется кстати автоматически и есть спец. кнопка для копирования ее в буфер
см. кнопку "i" в правом верхнем углу Запросника ;)
PS: Я SQL маньяк))).
PS2: еще бы был бы TransactSQL прям в 1С-ке)))
Если ТипЗнч(Запрос) = Тип("Запрос") Тогда
ВнешнийЗапрос = Запрос;
ИначеЕсли ТипЗнч(Запрос) = Тип("ПостроительЗапроса")ИЛИ ТипЗнч(Запрос) = Тип("ПостроительОтчета") Тогда
тЗапрос = Новый Запрос;
тЗапрос.Текст = Запрос.Текст;
Для Каждого СтрокаПараметра Из Запрос.Параметры Цикл
тЗапрос.УстановитьПараметр(СтрокаПараметра.Ключ,СтрокаПараметра.Значение);
КонецЦикла;
ВнешнийЗапрос = тЗапрос;
КонецЕсли;
ПолучитьФорму("Форма").ОткрытьМодально();
Так можно будет передать не только объект запроса но и построители отчетов.
и открывая форму модально, можно посмотреть запрос до его выполнения. Особенно это важно для тяжелых запросов.
Добавлена возможность открытия Запросника для отладки запроса в модальном режиме. Для этого в функции Отладить добавлен второй необязательный параметр (по умолчанию Ложь).
Примеры вызова:
ВнешниеОбработки.Создать("Q:\1С\8.1\My_EPFs\Запросник81.epf").Отладить(Запрос); - отладка в обычном режиме
ВнешниеОбработки.Создать("Q:\1С\8.1\My_EPFs\Запросник81.epf").Отладить(Запрос, Истина); - отладка в модальном режиме
возможно тормоза связаны с отображением результата в таблице значений на форме Запросника
если не сложно сделайте замер производительности в отладчике, чтобы понять какой кусок модуля тормозит
При отладке запроса, переданного из программного модуля сохраняется содержимое временных таблиц запроса. При этом в список временных таблиц запроса на закладке "Временные таблицы" попадаюттолько таблицы, запросы создания которых присутствуют в текущем тексте запроса. Для просмотра таблиц добавленных в запрос ранее, необходимо на закладке "Временные таблицы" вручную указать имя таблицы в поле "Временная таблица" и нажать кнопку "показать".
нужно было открыть большой ЗУП запрос в консоли.. параметры передались но..
{Форма.Форма.Форма(746)}: Ошибка при вызове метода контекста (Выполнить): {(8, 2)}: Таблица не найдена "ВТ_ТаблицаОстатков"
<<?>>ВТ_ТаблицаОстатков КАК ТаблицаОстатков
Сначал по тексту имеем
Запрос.Текст =
"ВЫБРАТЬ
| ТаблицаОстатков.Ссылка КАК Ссылка,
*****неважно
| ТаблицаОстатков.ДатаОстатков
|ПОМЕСТИТЬ ВТ_ТаблицаОстатков
потом
****
| ДатаОкончанияОтпуска";
Запрос.Выполнить();
и далее уже шел мой запрос который я открывал в консоли.
Запрос.Текст =
"ВЫБРАТЬ
и получил ошибку..
что можно с этим сделать?
PS: не удобно то, что на Ctrl+L висит открытие последних используемых файлов. Этот шорткат заменяет типовой очень полезный шорткат.
а Ctrl+Z у меня работает нормально, правда отменяется только редактирование вручную
результат работы конструктора данными клавишами не отменяется, но это особенности платформы видимо
я на это сочетание своих обработчиков не вешал
На закладке "Временные таблицы" и в списке временных таблиц добавлена кнопка "Отладить". При нажатии на нее в дереве запросов создается новый запрос, подчиненный основному запросу. В текст запроса переносится фрагмент основного запроса, связанный с формированием временной таблицы. Также переносятся значения параметров запроса, использующиеся во временной таблице. Таким образом можно отлаживать только те временные таблицы, данные для которых берутся непосредственно из базы данных. Т.е. временную таблицу, использующую данные других временных таблиц, описанных в запросе ранее, таким способом отлаживать нельзя.
Исправлены мелкие ошибки.
На закладке Резульат добавлена кнопка "Выполнить алгоритм...". По данной кнопке открывается форма, позволяющая задать произвольный программный алгоритм для выполнения его над строками результата запроса. Текст алгоритма сохраняется вместе с запросом.
Полное описание в справке.
При нажатии на кнопку "Отладить" на странице "Временные таблицы" в сформированном тексте запроса,
как положено, пропадает "ПОМЕСТИТЬ ДокТЧ", но не может переварить "ИНДЕКСИРОВАТЬ ПО Номенклатура",
т.к. это для временных таблиц.
Сообщение:
{Форма.Форма.Форма(759)}: Ошибка при вызове метода контекста (Выполнить): {(24, 1)}: Синтаксическая ошибка "ИНДЕКСИРОВАТЬ"
<<?>>ИНДЕКСИРОВАТЬ ПО
Прошу поправить.
Для работы со списком значений параметра добавлена новая форма. В ней при создании нового элемента списка тип его значения приводится к типу первого элемента списка. Т.е. не надо все время выбирать тип значения для нового элемента как в стандартном редактировании списка.
СУБД Постгри.
Запрос рабочий в конфе пашет без захвата после выполнения.
Если есть предположения скажи...
Очень огорчила странная работа "Ctrl+Z"(отменить). После выполнения запроса "история" изменений стирается...
Процедура КнопкаВыполнитьНажатие(Элемент)
Если СпособВыборки = 1 Тогда
ПоказыватьСлужебныеКолонкиРезультата = Ложь;
КонецЕсли;//
//ОчиститьТекстЗапросаОтМусора();
ВыполнитьЗапрос();
КонецПроцедуры
Закоменть вот эту строку(ОчиститьТекстЗапросаОтМусора). всё ок будет работать скорее всего. на страой KonsoljZaprosov82+ менял все нормально работало
Очень не удобно когда в дереве запросов более 500 запросов и более 8 уровней вложенности.
п.с. Для себя уже добавил.
Еще ПанельЦентральноеОкно переместил выше, так чтобы кнопка "закрыт"ь была там же где кнопка "параметры". Чтобы тыкать мышкой в одно и тоже место. Быстрее.
Не встречалась такая бага??... Выполняешь запрос он все ок выполняется. Далее в консоли сервера смотрим. Пишет что установлено соединение с СУБД. (№ соединения) , Захвачено СУБД, (время). И пока консоль не закроешь "не отпускает".
СУБД Постгри.
Запрос рабочий в конфе пашет без захвата после выполнения.
Если есть предположения скажи...
Может связано с тем, что пока консоль открыта - объект Запрос существует в оперативке и держит СУБД. А в конфе объект уничтожается после выхода из процедуры.
Очень огарчило новое дерево запросов. Почему нет подменю добавить подзапрос?? Почему нет подменю перенести подзапрос к дргому родителю?
10 минут искал как же все таки добавить все это. хоть и нашел. но это баг!
Кнопки этих действий находятся над деревом запросов. Добавил их и в контекстное подменю дерева.
Например, в дереве запросов один запрос. Добавляем в дерево запросов еще один запрос. Из первого копируем запрос и вставляем во второй. Затем переходим на первый запрос. Возвращаемся на второй, а текста уже нет. Хотелось бы, чтобы текст сохранялся.
спасибо,
разберемся
Сам новую политику владельцев сайта не поддерживаю, на мой взгляд подобные меры ведут к снижению популярности ресурса и уменьшению количества пользователей. Похоже, что теперь на вопрос где взять запросник придется отсылать не просто на инфостарт, но еще и логин свой давать чтоб скачать смогли :(
1) параметры вынести на поле описание
2) переделать функционал алгоритма в алгоритмы и добавить возможность сохранения (желательно как в одной из моих консолей)
В остальном все супер, тока кнопки ну очень крупные. )) спасибо. отдельное спасибо за отладку вложенных таблиц.
Отличная работа, некоторые пожелания которые будут удобны (имхо)
1) параметры вынести на поле описание
2) переделать функционал алгоритма в алгоритмы и добавить возможность сохранения (желательно как в одной из моих консолей)
В остальном все супер, тока кнопки ну очень крупные. )) спасибо. отдельное спасибо за отладку вложенных таблиц.
с пунктом 1) не согласен, т.к. в Параметрах много информации и необходимых для работы с ними кнопок
вместо поля Описание они точно не влезут, хотя мысль о том, что параметры надо показывать на основной форме гложет меня периодически, однако четкой и удобной реализации пока не вижу
есть задумка реализовать в прикрепляемой сбоку форме, но это пока задумка
по пунку 2)
алгоритм сохраняется вместе с запросом автоматически, когда закрывается форма работы с алгоритмом
по поводу возможности к одному запросу делать несколько алгоритмов - буду подумать :)
дай кстати ссылку на ту самую "одну из твоих консолей", было бы интересно посмотреть твое решение
крупные кнопки только основные, но в них и надо быстро попадать без особого прицела
мало написать запрос, надо еще и как следует навести прицел. )), вот если бы сделать их ну немного меньше, то и места для параметров бы и появилось, но это твое произведение ты и мастер. ))
формы с достаточно сложными привязками и изменяемой видимостью элементов частенько "расползаются"
причем на 8.2 это гораздо чаще встречается чем на 8.1
решение одно - правый клик на заголовке формы и "Восстановить положение окна"
Добавлено сохранение запроса во временный файл перед выполнением. Теперь если при выполнении запроса 1с "зависла" - сам запрос не потеряется. Для восстановления запроса из временного файла служить первая строка списка последних файлов ("Из кэша...").
Добавлена форма выбора вариантов копирования текста для вставки в программный модуль (нижняя кнопка в правом нижнем углу поля текста запроса).
{Обработка.КонсольЗапросовТезин.Форма.Форма(1340)}: Значение не является значением объектного типа (МоментВремениСсылка)
Если ЗначениеЗаполнено(ТекДанные.МоментВремениСсылка) Тогда
Функция ДанныеОВзносахПоКатегориям
{Форма.Форма.Форма(764)}: Ошибка при вызове метода контекста (Выполнить): {(7, 2)}: Таблица не найдена "ВТРасчетСумм"
<<?>>ВТРасчетСумм КАК РасчетныеДанные
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| СведенияПринятыеПФР.КомплектДокументов
|ПОМЕСТИТЬ ВТПринятоВПФР
|ИЗ
| РегистрСведений.СведенияПринятыеПФР КАК СведенияПринятыеПФР
|ГДЕ
| СведенияПринятыеПФР.КомплектДокументов <> ЗНАЧЕНИЕ(Документ.ПередачаСЗВ4вПФР.ПустаяСсылка)
| И СведенияПринятыеПФР.Организация = &Организация
| И СведенияПринятыеПФР.ОтчетныйПериодПерсучетаПФР < &ОтчетныйПериод
|;
|
|////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СтраховыеВзносыИсчисленныеОбороты.ФизЛицо КАК ФизЛицо,
| СтраховыеВзносыИсчисленныеОбороты.Период КАК МесяцОтчетногоПериода,
| КОНЕЦПЕРИОДА(СтраховыеВзносыИсчисленныеОбороты.Период, МЕСЯЦ) КАК Период,
| ВЫБОР
| КОГДА СтраховыеВзносыИсчисленныеОбороты.Период < ДАТАВРЕМЯ(2010, 7, 1, 0, 0, 0)
| ТОГДА ДАТАВРЕМЯ(2010, 1, 1, 0, 0, 0)
| КОГДА СтраховыеВзносыИсчисленныеОбороты.Период < ДАТАВРЕМЯ(2011, 1, 1, 0, 0, 0)
| ТОГДА ДАТАВРЕМЯ(2010, 7, 1, 0, 0, 0)
| ИНАЧЕ НАЧАЛОПЕРИОДА(СтраховыеВзносыИсчисленныеОбороты.Период, КВАРТАЛ)
| КОНЕЦ КАК ОтчетныйПериод,
| СтраховыеВзносыИсчисленныеОбороты.ПФРСтраховаяОборот + ВЫБОР
| КОГДА СтраховыеВзносыИсчисленныеОбороты.Период < &ДатаНовойРедакцииЗакона212
| ТОГДА 0
| ИНАЧЕ СтраховыеВзносыИсчисленныеОбороты.ПФРСтраховаяЕНВДОборот
| КОНЕЦ КАК ПФРСтраховаяОборот,
| СтраховыеВзносыИсчисленныеОбороты.ПФРНакопительнаяОборот + ВЫБОР
| КОГДА СтраховыеВзносыИсчисленныеОбороты.Период < &ДатаНовойРедакцииЗакона212
| ТОГДА 0
| ИНАЧЕ СтраховыеВзносыИсчисленныеОбороты.ПФРНакопительнаяЕНВДОборот
| КОНЕЦ КАК ПФРНакопительнаяОборот,
| ВЫБОР
| КОГДА СтраховыеВзносыИсчисленныеОбороты.Период < &ДатаНовойРедакцииЗакона212
| ТОГДА СтраховыеВзносыИсчисленныеОбороты.ПФРСтраховаяЕНВДОборот
| ИНАЧЕ 0
| КОНЕЦ КАК ПФРСтраховаяЕНВДОборот,
| ВЫБОР
| КОГДА СтраховыеВзносыИсчисленныеОбороты.Период < &ДатаНовойРедакцииЗакона212
| ТОГДА СтраховыеВзносыИсчисленныеОбороты.ПФРНакопительнаяЕНВДОборот
| ИНАЧЕ 0
| КОНЕЦ КАК ПФРНакопительнаяЕНВДОборот
|ПОМЕСТИТЬ ВТИсчисленоПоЗЛ
|ИЗ
| РегистрНакопления.СтраховыеВзносыИсчисленные.Обороты(&ОтчетныйПериод, &КонецОтчетногоПериода, Месяц, ОбособленноеПодразделение = &Организация) КАК СтраховыеВзносыИсчисленныеОбороты
|
|ИНДЕКСИРОВАТЬ ПО
| ФизЛицо
|;
|
|////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СрезПоследнихДат.МесяцОтчетногоПериода,
| СрезПоследнихДат.Физлицо КАК Физлицо
|ПОМЕСТИТЬ ВТИнвалиды
|ИЗ
| (ВЫБРАТЬ
| Периоды.МесяцОтчетногоПериода КАК МесяцОтчетногоПериода,
| Периоды.ФизЛицо КАК Физлицо,
| МАКСИМУМ(СведенияОбИнвалидностиФизлиц.Период) КАК Период
| ИЗ
| ВТИсчисленоПоЗЛ КАК Периоды
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОбИнвалидностиФизлиц КАК СведенияОбИнвалидностиФизлиц
| ПО Периоды.Период >= СведенияОбИнвалидностиФизлиц.Период
| И Периоды.ФизЛицо = СведенияОбИнвалидностиФизлиц.Физлицо
|
| СГРУППИРОВАТЬ ПО
| Периоды.ФизЛицо,
| Периоды.МесяцОтчетногоПериода) КАК СрезПоследнихДат
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОбИнвалидностиФизлиц КАК СведенияОбИнвалидностиФизлиц
| ПО СрезПоследнихДат.Период = СведенияОбИнвалидностиФизлиц.Период
| И СрезПоследнихДат.Физлицо = СведенияОбИнвалидностиФизлиц.Физлицо
|ГДЕ
| СведенияОбИнвалидностиФизлиц.Инвалидность
|
|ИНДЕКСИРОВАТЬ ПО
| Физлицо,
| СрезПоследнихДат.МесяцОтчетногоПериода
|;
|
|////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| Периоды.МесяцОтчетногоПериода,
| ЕСТЬNULL(УчетнаяПолитикаНалоговыйУчет.ВидТарифаСтраховыхВзносов, ЗНАЧЕНИЕ(Перечисление.ТарифыСтраховыхВзносов.ОбщийНалоговыйРежим)) КАК ВидТарифаСтраховыхВзносов
|ПОМЕСТИТЬ ВТВидыТарифныхСтавокОрганизаций
|ИЗ
| (ВЫБРАТЬ
| Периоды.МесяцОтчетногоПериода КАК МесяцОтчетногоПериода,
| УчетнаяПолитикаНалоговыйУчет.Организация КАК Организация,
| МАКСИМУМ(УчетнаяПолитикаНалоговыйУчет.Период) КАК ПериодРегистра
| ИЗ
| ВТИсчисленоПоЗЛ КАК Периоды
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УчетнаяПолитикаНалоговыйУчет КАК УчетнаяПолитикаНалоговыйУчет
| ПО Периоды.Период >= УчетнаяПолитикаНалоговыйУчет.Период
| И (УчетнаяПолитикаНалоговыйУчет.Организация = &ГоловнаяОрганизация)
|
| СГРУППИРОВАТЬ ПО
| Периоды.МесяцОтчетногоПериода,
| УчетнаяПолитикаНалоговыйУчет.Организация) КАК Периоды
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УчетнаяПолитикаНалоговыйУчет КАК УчетнаяПолитикаНалоговыйУчет
| ПО Периоды.ПериодРегистра = УчетнаяПолитикаНалоговыйУчет.Период
| И Периоды.Организация = УчетнаяПолитикаНалоговыйУчет.Организация
|
|ИНДЕКСИРОВАТЬ ПО
| Периоды.МесяцОтчетногоПериода
|;
|
|////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ИсчисленоПоЗЛ.ФизЛицо КАК ФизЛицо,
| ИсчисленоПоЗЛ.ПФРНакопительнаяОборот КАК ПФРНакопительнаяОборот,
| ИсчисленоПоЗЛ.ПФРСтраховаяОборот КАК ПФРСтраховаяОборот,
| ИсчисленоПоЗЛ.ОтчетныйПериод КАК ОтчетныйПериод,
| НАЧАЛОПЕРИОДА(ИсчисленоПоЗЛ.ОтчетныйПериод, ГОД) КАК ГодОтчетногоПериода,
| ВЫБОР
| КОГДА Инвалиды.Физлицо ЕСТЬ НЕ NULL
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТарифыСтраховыхВзносов.ОрганизацияИнвалидов)
| ИНАЧЕ ВидыТарифныхСтавокОрганизаций.ВидТарифаСтраховыхВзносов
| КОНЕЦ КАК ВидТарифаСтраховыхВзносов
|ПОМЕСТИТЬ ВТИсчисленоПоЗЛпоВидамТарифа
|ИЗ
| ВТИсчисленоПоЗЛ КАК ИсчисленоПоЗЛ
| ЛЕВОЕ СОЕДИНЕНИЕ ВТИнвалиды КАК Инвалиды
| ПО ИсчисленоПоЗЛ.ФизЛицо = Инвалиды.Физлицо
| И ИсчисленоПоЗЛ.МесяцОтчетногоПериода = Инвалиды.МесяцОтчетногоПериода
| ЛЕВОЕ СОЕДИНЕНИЕ ВТВидыТарифныхСтавокОрганизаций КАК ВидыТарифныхСтавокОрганизаций
| ПО ИсчисленоПоЗЛ.МесяцОтчетногоПериода = ВидыТарифныхСтавокОрганизаций.МесяцОтчетногоПериода
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ИсчисленоПоЗЛ.ФизЛицо,
| ИсчисленоПоЗЛ.ПФРНакопительнаяЕНВДОборот,
| ИсчисленоПоЗЛ.ПФРСтраховаяЕНВДОборот,
| ИсчисленоПоЗЛ.ОтчетныйПериод,
| НАЧАЛОПЕРИОДА(ИсчисленоПоЗЛ.ОтчетныйПериод, ГОД),
| ВЫБОР
| КОГДА Инвалиды.Физлицо ЕСТЬ НЕ NULL
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТарифыСтраховыхВзносов.ОрганизацияИнвалидов)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ТарифыСтраховыхВзносов.ЕНВД)
| КОНЕЦ
|ИЗ
| ВТИсчисленоПоЗЛ КАК ИсчисленоПоЗЛ
| ЛЕВОЕ СОЕДИНЕНИЕ ВТИнвалиды КАК Инвалиды
| ПО ИсчисленоПоЗЛ.ФизЛицо = Инвалиды.Физлицо
| И ИсчисленоПоЗЛ.МесяцОтчетногоПериода = Инвалиды.МесяцОтчетногоПериода
|
|ИНДЕКСИРОВАТЬ ПО
| ФизЛицо
|;
|
|////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ИсчисленоПоЗЛ.ФизЛицо,
| СоответствиеТарифаКатегории.КатегорияЗастрахованныхЛиц,
| СУММА(ИсчисленоПоЗЛ.ПФРСтраховаяОборот) КАК ПФРСтраховая,
| СУММА(ИсчисленоПоЗЛ.ПФРНакопительнаяОборот) КАК ПФРНакопительная
|ПОМЕСТИТЬ ВТНачисленоЗаОтчетныйПериодФормирования
|ИЗ
| ВТИсчисленоПоЗЛпоВидамТарифа КАК ИсчисленоПоЗЛ
| ЛЕВОЕ СОЕДИНЕНИЕ ВТСоответствиеТарифаКатегории КАК СоответствиеТарифаКатегории
| ПО (&ОтчетныйГод МЕЖДУ СоответствиеТарифаКатегории.ГодС И СоответствиеТарифаКатегории.ГодПо)
| И ИсчисленоПоЗЛ.ВидТарифаСтраховыхВзносов = СоответствиеТарифаКатегории.ВидТарифаСтраховыхВзносов
|
|СГРУППИРОВАТЬ ПО
| СоответствиеТарифаКатегории.КатегорияЗастрахованныхЛиц,
| ИсчисленоПоЗЛ.ФизЛицо
|;
|
|////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| РасчетыПоСтраховымВзносамОбороты.ПФРСтраховаяПриход КАК ПФРСтраховаяПриход,
| РасчетыПоСтраховымВзносамОбороты.ПФРНакопительнаяПриход КАК ПФРНакопительнаяПриход
|ПОМЕСТИТЬ ВТВсегоНачислено
|ИЗ
| РегистрНакопления.РасчетыПоСтраховымВзносам.Обороты(
| ,
| &ДатаАктуальности,
| ,
| ВидПлатежа = ЗНАЧЕНИЕ(Перечисление.ВидыПлатежейВГосБюджет.Налог)
| И Организация = &Организация
| И ОтчетныйПериодПерсучетаПФР = &ОтчетныйПериод) КАК РасчетыПоСтраховымВзносамОбороты
|;
|
|////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| РасчетыПоСтраховымВзносамОбороты.ПФРСтраховаяРасход КАК ПФРСтраховаяРасход,
| РасчетыПоСтраховымВзносамОбороты.ПФРНакопительнаяРасход КАК ПФРНакопительнаяРасход,
| ""Уплата"" КАК ВидСтроки
|ПОМЕСТИТЬ ВТВсегоУплачено
|ИЗ
| РегистрНакопления.РасчетыПоСтраховымВзносам.Обороты(
| &ОтчетныйПериод,
| &КонецПериодаУплаты,
| Месяц,
| ВидПлатежа = ЗНАЧЕНИЕ(Перечисление.ВидыПлатежейВГосБюджет.Налог)
| И ОтчетныйПериодПерсучетаПФР >= &ДатаЗаменыЕСН
| И Организация = &Организация) КАК РасчетыПоСтраховымВзносамОбороты
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ВЫБОР
| КОГДА РасчетыПоСтраховымВзносамОстатки.ПФРСтраховаяОстаток > 0
| ТОГДА 0
| ИНАЧЕ -РасчетыПоСтраховымВзносамОстатки.ПФРСтраховаяОстаток
| КОНЕЦ,
| ВЫБОР
| КОГДА РасчетыПоСтраховымВзносамОстатки.ПФРНакопительнаяОстаток > 0
| ТОГДА 0
| ИНАЧЕ -РасчетыПоСтраховымВзносамОстатки.ПФРНакопительнаяОстаток
| КОНЕЦ,
| ""Переплата""
|ИЗ
| РегистрНакопления.РасчетыПоСтраховымВзносам.Остатки(
| &ОтчетныйПериод,
| ВидПлатежа = ЗНАЧЕНИЕ(Перечисление.ВидыПлатежейВГосБюджет.Налог)
| И ОтчетныйПериодПерсучетаПФР >= &ДатаЗаменыЕСН
| И Организация = &Организация) КАК РасчетыПоСтраховымВзносамОстатки
|;
|
|////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.ФизЛицо,
| ВЫБОР
| КОГДА &ОтчетныйГод = ГОД(СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка.ОтчетныйПериод)
| ТОГДА СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка.КатегорияЗастрахованныхЛиц
| КОГДА СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка.КатегорияЗастрахованныхЛиц = ЗНАЧЕНИЕ(Перечисление.КатегорииЗастрахованныхЛицПФР.УСЕН)
| ТОГДА СоответствиеТарифаКатегории.КатегорияЗастрахованныхЛиц
| КОГДА СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка.КатегорияЗастрахованныхЛиц = ЗНАЧЕНИЕ(Перечисление.КатегорииЗастрахованныхЛицПФР.ОЗОИ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.КатегорииЗастрахованныхЛицПФР.ООИ)
| ИНАЧЕ СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка.КатегорияЗастрахованныхЛиц
| КОНЕЦ КАК КатегорияЗастрахованныхЛиц,
| СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.НачисленоНакопительная,
| СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.НачисленоСтраховая,
| СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.УплаченоНакопительная,
| СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.УплаченоСтраховая,
| СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка.ОтчетныйПериод
|ПОМЕСТИТЬ ВТПринятоУплаты
|ИЗ
| ВТПринятоВПФР КАК ПринятоВПФР
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПередачаСЗВ4вПФР.ПачкиДокументов КАК ПередачаСЗВ4вПФРПачкиДокументов
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.СведенияОТрудовомСтажеИЗаработкеСЗВ4.РаботникиОрганизации КАК СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации
| ПО ПередачаСЗВ4вПФРПачкиДокументов.ДокументПачка = СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка
| ПО ПринятоВПФР.КомплектДокументов = ПередачаСЗВ4вПФРПачкиДокументов.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ ВТВидыТарифныхСтавокОрганизаций КАК ТарифыСтавокОрганизации
| ЛЕВОЕ СОЕДИНЕНИЕ ВТСоответствиеТарифаКатегории КАК СоответствиеТарифаКатегории
| ПО (ГОД(ТарифыСтавокОрганизации.МесяцОтчетногоПериода) МЕЖДУ СоответствиеТарифаКатегории.ГодС И СоответствиеТарифаКатегории.ГодПо)
| И ТарифыСтавокОрганизации.ВидТарифаСтраховыхВзносов = СоответствиеТарифаКатегории.ВидТарифаСтраховыхВзносов
| ПО (&ОтчетныйПериод = ТарифыСтавокОрганизации.МесяцОтчетногоПериода)
|ГДЕ
| СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка.ТипСведенийСЗВ = ЗНАЧЕНИЕ(Перечисление.ТипыСведенийСЗВ.ИСХОДНАЯ)
|;
|
|////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ПринятоУплаты.ОтчетныйПериод КАК ОтчетныйПериод,
| ВЫБОР
| КОГДА &ОтчетныйГод = ГОД(ПередачаСЗВ4вПФРПачкиДокументов.ДокументПачка.КорректируемыйПериод)
| ТОГДА ПередачаСЗВ4вПФРПачкиДокументов.ДокументПачка.КатегорияЗастрахованныхЛиц
| КОГДА ПередачаСЗВ4вПФРПачкиДокументов.ДокументПачка.КатегорияЗастрахованныхЛиц = ЗНАЧЕНИЕ(Перечисление.КатегорииЗастрахованныхЛицПФР.УСЕН)
| ТОГДА СоответствиеТарифаКатегории.КатегорияЗастрахованныхЛиц
| КОГДА ПередачаСЗВ4вПФРПачкиДокументов.ДокументПачка.КатегорияЗастрахованныхЛиц = ЗНАЧЕНИЕ(Перечисление.КатегорииЗастрахованныхЛицПФР.ОЗОИ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.КатегорииЗастрахованныхЛицПФР.ООИ)
| ИНАЧЕ ПередачаСЗВ4вПФРПачкиДокументов.ДокументПачка.КатегорияЗастрахованныхЛиц
| КОНЕЦ КАК КатегорияЗастрахованныхЛиц,
| ПередачаСЗВ4вПФРПачкиДокументов.ДокументПачка
|ПОМЕСТИТЬ ВТДокументыКорректировки
|ИЗ
| ВТПринятоУплаты КАК ПринятоУплаты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияПринятыеПФР КАК Корректировки
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПередачаСЗВ4вПФР.ПачкиДокументов КАК ПередачаСЗВ4вПФРПачкиДокументов
| ПО Корректировки.КомплектДокументов = ПередачаСЗВ4вПФРПачкиДокументов.Ссылка
| ПО ПринятоУплаты.ОтчетныйПериод < Корректировки.ОтчетныйПериодПерсучетаПФР
| И (&ОтчетныйПериод > Корректировки.ОтчетныйПериодПерсучетаПФР)
| И (Корректировки.Организация = &Организация)
| ЛЕВОЕ СОЕДИНЕНИЕ ВТВидыТарифныхСтавокОрганизаций КАК ТарифыСтавокОрганизации
| ЛЕВОЕ СОЕДИНЕНИЕ ВТСоответствиеТарифаКатегории КАК СоответствиеТарифаКатегории
| ПО (ГОД(ТарифыСтавокОрганизации.МесяцОтчетногоПериода) МЕЖДУ СоответствиеТарифаКатегории.ГодС И СоответствиеТарифаКатегории.ГодПо)
| И ТарифыСтавокОрганизации.ВидТарифаСтраховыхВзносов = СоответствиеТарифаКатегории.ВидТарифаСтраховыхВзносов
| ПО (&ОтчетныйПериод = ТарифыСтавокОрганизации.МесяцОтчетногоПериода)
|ГДЕ
| ПередачаСЗВ4вПФРПачкиДокументов.ДокументПачка.ТипСведенийСЗВ В (ЗНАЧЕНИЕ(Перечисление.ТипыСведенийСЗВ.ОТМЕНЯЮЩАЯ), ЗНАЧЕНИЕ(Перечисление.ТипыСведенийСЗВ.КОРРЕКТИРУЮЩАЯ))
|;
|
|////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ОписаниеДокумента.ОтчетныйПериод,
| ОписаниеДокумента.ФизЛицо,
| ОписаниеДокумента.КатегорияЗастрахованныхЛиц,
| ВЫБОР
| КОГДА СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка.ТипСведенийСЗВ = ЗНАЧЕНИЕ(Перечисление.ТипыСведенийСЗВ.ОТМЕНЯЮЩАЯ)
| ТОГДА 0
| ИНАЧЕ СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.УплаченоСтраховая
| КОНЕЦ КАК УплаченоСтраховая,
| ВЫБОР
| КОГДА СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка.ТипСведенийСЗВ = ЗНАЧЕНИЕ(Перечисление.ТипыСведенийСЗВ.ОТМЕНЯЮЩАЯ)
| ТОГДА 0
| ИНАЧЕ СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.УплаченоНакопительная
| КОНЕЦ КАК УплаченоНакопительная,
| ВЫБОР
| КОГДА СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка.ТипСведенийСЗВ = ЗНАЧЕНИЕ(Перечисление.ТипыСведенийСЗВ.ОТМЕНЯЮЩАЯ)
| ТОГДА 0
| ИНАЧЕ СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.НачисленоСтраховая
| КОНЕЦ КАК НачисленоСтраховая,
| ВЫБОР
| КОГДА СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка.ТипСведенийСЗВ = ЗНАЧЕНИЕ(Перечисление.ТипыСведенийСЗВ.ОТМЕНЯЮЩАЯ)
| ТОГДА 0
| ИНАЧЕ СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.НачисленоНакопительная
| КОНЕЦ КАК НачисленоНакопительная
|ПОМЕСТИТЬ ВТКорректировкиПринятыеПФР
|ИЗ
| (ВЫБРАТЬ
| ПринятоУплаты.ОтчетныйПериод КАК ОтчетныйПериод,
| ПринятоУплаты.ФизЛицо КАК ФизЛицо,
| МАКСИМУМ(СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка.ОтчетныйПериод) КАК ОтчетныйПериодКорректировки,
| ПринятоУплаты.КатегорияЗастрахованныхЛиц КАК КатегорияЗастрахованныхЛиц
| ИЗ
| ВТПринятоУплаты КАК ПринятоУплаты
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДокументыКорректировки КАК Корректировки
| ПО ПринятоУплаты.ОтчетныйПериод = Корректировки.ОтчетныйПериод
| И ПринятоУплаты.КатегорияЗастрахованныхЛиц = Корректировки.КатегорияЗастрахованныхЛиц
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.СведенияОТрудовомСтажеИЗаработкеСЗВ4.РаботникиОрганизации КАК СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации
| ПО ПринятоУплаты.ОтчетныйПериод = СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка.КорректируемыйПериод
| И ПринятоУплаты.ФизЛицо = СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.ФизЛицо
| И (Корректировки.ДокументПачка = СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка)
| ГДЕ
| СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.ФизЛицо ЕСТЬ НЕ NULL
|
| СГРУППИРОВАТЬ ПО
| ПринятоУплаты.ОтчетныйПериод,
| ПринятоУплаты.ФизЛицо,
| ПринятоУплаты.КатегорияЗастрахованныхЛиц) КАК ОписаниеДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДокументыКорректировки КАК Корректировки
| ПО ОписаниеДокумента.ОтчетныйПериод = Корректировки.ОтчетныйПериод
| И ОписаниеДокумента.КатегорияЗастрахованныхЛиц = Корректировки.КатегорияЗастрахованныхЛиц
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.СведенияОТрудовомСтажеИЗаработкеСЗВ4.РаботникиОрганизации КАК СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации
| ПО ОписаниеДокумента.ОтчетныйПериод = СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка.КорректируемыйПериод
| И ОписаниеДокумента.ФизЛицо = СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.ФизЛицо
| И ОписаниеДокумента.ОтчетныйПериодКорректировки = СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка.ОтчетныйПериод
| И (Корректировки.ДокументПачка = СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка)
|ГДЕ
| СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.ФизЛицо ЕСТЬ НЕ NULL
|;
|
|////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПринятоУплаты.ФизЛицо,
| ПринятоУплаты.КатегорияЗастрахованныхЛиц,
| СУММА(ЕСТЬNULL(КорректировкиПринятыеПФР.УплаченоНакопительная, ПринятоУплаты.УплаченоНакопительная)) КАК УплаченоНакопительная,
| СУММА(ЕСТЬNULL(КорректировкиПринятыеПФР.УплаченоСтраховая, ПринятоУплаты.УплаченоСтраховая)) КАК УплаченоСтраховая,
| СУММА(ЕСТЬNULL(КорректировкиПринятыеПФР.НачисленоНакопительная, ПринятоУплаты.НачисленоНакопительная)) КАК НачисленоНакопительная,
| СУММА(ЕСТЬNULL(КорректировкиПринятыеПФР.НачисленоСтраховая, ПринятоУплаты.НачисленоСтраховая)) КАК НачисленоСтраховая
|ПОМЕСТИТЬ ВТУплатыПринятыеПФР
|ИЗ
| ВТПринятоУплаты КАК ПринятоУплаты
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКорректировкиПринятыеПФР КАК КорректировкиПринятыеПФР
| ПО ПринятоУплаты.ФизЛицо = КорректировкиПринятыеПФР.ФизЛицо
| И ПринятоУплаты.ОтчетныйПериод = КорректировкиПринятыеПФР.ОтчетныйПериод
| И ПринятоУплаты.КатегорияЗастрахованныхЛиц = КорректировкиПринятыеПФР.КатегорияЗастрахованныхЛиц
|
|СГРУППИРОВАТЬ ПО
| ПринятоУплаты.ФизЛицо,
| ПринятоУплаты.КатегорияЗастрахованныхЛиц
|;
|
|////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| УплатыПринятыеПФР.ФизЛицо
|ПОМЕСТИТЬ ВТФизлицаСПереплатой
|ИЗ
| ВТУплатыПринятыеПФР КАК УплатыПринятыеПФР
|
|СГРУППИРОВАТЬ ПО
| УплатыПринятыеПФР.ФизЛицо
|
|ИМЕЮЩИЕ
| (СУММА(УплатыПринятыеПФР.НачисленоНакопительная) < СУММА(УплатыПринятыеПФР.УплаченоНакопительная)
| ИЛИ СУММА(УплатыПринятыеПФР.НачисленоСтраховая) < СУММА(УплатыПринятыеПФР.УплаченоСтраховая))
|;
|
|////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| УплатыПринятыеПФР.ФизЛицо,
| УплатыПринятыеПФР.КатегорияЗастрахованныхЛиц,
| УплатыПринятыеПФР.НачисленоНакопительная - УплатыПринятыеПФР.УплаченоНакопительная КАК Накопительная,
| УплатыПринятыеПФР.НачисленоСтраховая - УплатыПринятыеПФР.УплаченоСтраховая КАК Страховая
|ПОМЕСТИТЬ ВТНедоуплаченоЗаПрошлыеПериоды
|ИЗ
| ВТУплатыПринятыеПФР КАК УплатыПринятыеПФР
|ГДЕ
| (НЕ УплатыПринятыеПФР.ФизЛицо В
| (ВЫБРАТЬ
| ФизЛица.ФизЛицо
| ИЗ
| ВТФизлицаСПереплатой КАК ФизЛица))
|;
|
|////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЕСТЬNULL(ПрошлыеПериоды.Накопительная, 0) КАК Накопительная,
| ЕСТЬNULL(ПрошлыеПериоды.Страховая, 0) КАК Страховая,
| ЕСТЬNULL(ВсегоНачислено.ПФРСтраховаяПриход, 0) КАК ПФРСтраховаяПриход,
| ЕСТЬNULL(ВсегоНачислено.ПФРНакопительнаяПриход, 0) КАК ПФРНакопительнаяПриход,
| ЕСТЬNULL(ВсегоУплачено.ПФРСтраховаяРасход, 0) КАК ПФРСтраховаяРасход,
| ЕСТЬNULL(ВсегоУплачено.ПФРНакопительнаяРасход, 0) КАК ПФРНакопительнаяРасход,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВсегоНачислено.ПФРСтраховаяПриход, 0) = 0
| ТОГДА 0
| КОГДА ЕСТЬNULL(ПрошлыеПериоды.Страховая, 0) > ЕСТЬNULL(ВсегоУплачено.ПФРСтраховаяРасход, 0)
| ТОГДА 0
| КОГДА ЕСТЬNULL(ВсегоУплачено.ПФРСтраховаяРасход, 0) - ЕСТЬNULL(ПрошлыеПериоды.Страховая, 0) > ЕСТЬNULL(ВсегоНачислено.ПФРСтраховаяПриход, 0)
| ТОГДА 100000
| ИНАЧЕ ВЫРАЗИТЬ((ЕСТЬNULL(ВсегоУплачено.ПФРСтраховаяРасход, 0) - ЕСТЬNULL(ПрошлыеПериоды.Страховая, 0)) * 100000 / (ВЫРАЗИТЬ(ЕСТЬNULL(ВсегоНачислено.ПФРСтраховаяПриход, 0) КАК ЧИСЛО(25, 6))) КАК ЧИСЛО(20, 6))
| КОНЕЦ КАК КоэффициентТекущегоПериодаСтраховая,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВсегоНачислено.ПФРНакопительнаяПриход, 0) = 0
| ТОГДА 0
| КОГДА ЕСТЬNULL(ПрошлыеПериоды.Накопительная, 0) > ЕСТЬNULL(ВсегоУплачено.ПФРНакопительнаяРасход, 0)
| ТОГДА 0
| КОГДА ЕСТЬNULL(ВсегоУплачено.ПФРНакопительнаяРасход, 0) - ЕСТЬNULL(ПрошлыеПериоды.Накопительная, 0) > ЕСТЬNULL(ВсегоНачислено.ПФРНакопительнаяПриход, 0)
| ТОГДА 100000
| ИНАЧЕ ВЫРАЗИТЬ((ЕСТЬNULL(ВсегоУплачено.ПФРНакопительнаяРасход, 0) - ЕСТЬNULL(ПрошлыеПериоды.Накопительная, 0)) * 100000 / (ВЫРАЗИТЬ(ЕСТЬNULL(ВсегоНачислено.ПФРНакопительнаяПриход, 0) КАК ЧИСЛО(25, 6))) КАК ЧИСЛО(20, 6))
| КОНЕЦ КАК КоэффициентТекущегоПериодаНакопительная,
| ВЫБОР
| КОГДА ЕСТЬNULL(ПрошлыеПериоды.Страховая, 0) = 0
| ТОГДА 0
| КОГДА ЕСТЬNULL(ПрошлыеПериоды.Страховая, 0) < ЕСТЬNULL(ВсегоУплачено.ПФРСтраховаяРасход, 0)
| ТОГДА 100000
| ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ВсегоУплачено.ПФРСтраховаяРасход, 0) * 100000 / (ВЫРАЗИТЬ(ЕСТЬNULL(ПрошлыеПериоды.Страховая, 0) КАК ЧИСЛО(25, 6))) КАК ЧИСЛО(20, 6))
| КОНЕЦ КАК КоэффициентПрошлыхПериодовСтраховая,
| ВЫБОР
| КОГДА ЕСТЬNULL(ПрошлыеПериоды.Накопительная, 0) = 0
| ТОГДА 0
| КОГДА ЕСТЬNULL(ПрошлыеПериоды.Накопительная, 0) < ЕСТЬNULL(ВсегоУплачено.ПФРНакопительнаяРасход, 0)
| ТОГДА 100000
| ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ВсегоУплачено.ПФРНакопительнаяРасход, 0) * 100000 / (ВЫРАЗИТЬ(ЕСТЬNULL(ПрошлыеПериоды.Накопительная, 0) КАК ЧИСЛО(25, 6))) КАК ЧИСЛО(20, 6))
| КОНЕЦ КАК КоэффициентПрошлыхПериодовНакопительная,
| ВЫБОР
| КОГДА ЕСТЬNULL(ПрошлыеПериоды.Страховая, 0) + ЕСТЬNULL(ВсегоНачислено.ПФРСтраховаяПриход, 0) > ЕСТЬNULL(ВсегоУплачено.ПФРСтраховаяРасход, 0)
| ТОГДА ЕСТЬNULL(ВсегоУплачено.ПФРСтраховаяРасход, 0)
| ИНАЧЕ ЕСТЬNULL(ПрошлыеПериоды.Страховая, 0) + ЕСТЬNULL(ВсегоНачислено.ПФРСтраховаяПриход, 0)
| КОНЕЦ КАК УчтеноУплатыСтраховая,
| ВЫБОР
| КОГДА ЕСТЬNULL(ПрошлыеПериоды.Накопительная, 0) + ЕСТЬNULL(ВсегоНачислено.ПФРНакопительнаяПриход, 0) > ЕСТЬNULL(ВсегоУплачено.ПФРНакопительнаяРасход, 0)
| ТОГДА ЕСТЬNULL(ВсегоУплачено.ПФРНакопительнаяРасход, 0)
| ИНАЧЕ ЕСТЬNULL(ПрошлыеПериоды.Накопительная, 0) + ЕСТЬNULL(ВсегоНачислено.ПФРНакопительнаяПриход, 0)
| КОНЕЦ КАК УчтеноУплатыНакопительная
|ПОМЕСТИТЬ ВТКоэффициентыУплаты
|ИЗ
| (ВЫБРАТЬ
| 1 КАК Поле) КАК СтрокаЗапроса
| ЛЕВОЕ СОЕДИНЕНИЕ ВТВсегоНачислено КАК ВсегоНачислено
| ПО (ИСТИНА)
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| СУММА(ВсегоУплачено.ПФРСтраховаяРасход) КАК ПФРСтраховаяРасход,
| СУММА(ВсегоУплачено.ПФРНакопительнаяРасход) КАК ПФРНакопительнаяРасход
| ИЗ
| ВТВсегоУплачено КАК ВсегоУплачено) КАК ВсегоУплачено
| ПО (ИСТИНА)
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| СУММА(НедоуплаченоЗаПрошлыеПериоды.Накопительная) КАК Накопительная,
| СУММА(НедоуплаченоЗаПрошлыеПериоды.Страховая) КАК Страховая
| ИЗ
| ВТНедоуплаченоЗаПрошлыеПериоды КАК НедоуплаченоЗаПрошлыеПериоды) КАК ПрошлыеПериоды
| ПО (ИСТИНА)
|;
|
|////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| НедоуплаченоЗаПрошлыеПериоды.ФизЛицо КАК ФизЛицо,
| НедоуплаченоЗаПрошлыеПериоды.КатегорияЗастрахованныхЛиц КАК КатегорияЗастрахованныхЛиц,
| НедоуплаченоЗаПрошлыеПериоды.Накопительная * КоэффициентыУплаты.КоэффициентПрошлыхПериодовНакопительная / 100000 КАК УплаченоНакопительная,
| НедоуплаченоЗаПрошлыеПериоды.Страховая * КоэффициентыУплаты.КоэффициентПрошлыхПериодовСтраховая / 100000 КАК УплаченоСтраховая,
| 0 КАК НачисленоСтраховая,
| 0 КАК НачисленоНакопительная,
| ""Прошлые периоды"" КАК ВидСтроки
|ПОМЕСТИТЬ ВТРасчетСумм
|ИЗ
| ВТНедоуплаченоЗаПрошлыеПериоды КАК НедоуплаченоЗаПрошлыеПериоды
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКоэффициентыУплаты КАК КоэффициентыУплаты
| ПО (ИСТИНА)
|ГДЕ
| (НедоуплаченоЗаПрошлыеПериоды.Накопительная <> 0
| ИЛИ НедоуплаченоЗаПрошлыеПериоды.Страховая <> 0)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| НачисленоПоЗЛ.ФизЛицо,
| НачисленоПоЗЛ.КатегорияЗастрахованныхЛиц,
| НачисленоПоЗЛ.ПФРНакопительная * КоэффициентыУплаты.КоэффициентТекущегоПериодаНакопительная / 100000,
| НачисленоПоЗЛ.ПФРСтраховая * КоэффициентыУплаты.КоэффициентТекущегоПериодаСтраховая / 100000,
| НачисленоПоЗЛ.ПФРСтраховая,
| НачисленоПоЗЛ.ПФРНакопительная,
| ""Текущий период""
|ИЗ
| ВТНачисленоЗаОтчетныйПериодФормирования КАК НачисленоПоЗЛ
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКоэффициентыУплаты КАК КоэффициентыУплаты
| ПО (ИСТИНА)
|ГДЕ
| (НачисленоПоЗЛ.ПФРНакопительная <> 0
| ИЛИ НачисленоПоЗЛ.ПФРСтраховая <> 0)
|;
|
|////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Уплачено.УчтеноУплатыСтраховая КАК Страховая,
| Уплачено.УчтеноУплатыНакопительная КАК Накопительная
|ИЗ
| ВТКоэффициентыУплаты КАК Уплачено
|;
|
|////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЕСТЬNULL(СУММА(ВЫРАЗИТЬ(РасчетныеДанные.УплаченоСтраховая КАК ЧИСЛО(15, 2))),0) КАК Страховая,
| ЕСТЬNULL(СУММА(ВЫРАЗИТЬ(РасчетныеДанные.УплаченоНакопительная КАК ЧИСЛО(15, 2))),0) КАК Накопительная
|ИЗ
| ВТРасчетСумм КАК РасчетныеДанные
|;
|
|////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| РасчетныеДанные.ФизЛицо КАК ФизЛицо,
| РасчетныеДанные.КатегорияЗастрахованныхЛиц КАК КатегорияЗастрахованныхЛиц,
| СУММА(РасчетныеДанные.УплаченоНакопительная) КАК УплаченоНакопительная,
| СУММА(РасчетныеДанные.УплаченоСтраховая) КАК УплаченоСтраховая,
| СУММА(РасчетныеДанные.НачисленоСтраховая) КАК НачисленоСтраховая,
| СУММА(РасчетныеДанные.НачисленоНакопительная) КАК НачисленоНакопительная
|ИЗ
| ВТРасчетСумм КАК РасчетныеДанные
|
|СГРУППИРОВАТЬ ПО
| РасчетныеДанные.ФизЛицо,
| РасчетныеДанные.КатегорияЗастрахованныхЛиц
|
|ИМЕЮЩИЕ
| (СУММА(РасчетныеДанные.УплаченоНакопительная) <> 0
| ИЛИ СУММА(РасчетныеДанные.УплаченоСтраховая) <> 0
| ИЛИ СУММА(РасчетныеДанные.НачисленоСтраховая) <> 0
| ИЛИ СУММА(РасчетныеДанные.НачисленоНакопительная) <> 0)
|
|УПОРЯДОЧИТЬ ПО
| ФизЛицо,
| КатегорияЗастрахованныхЛиц";
Может не вижу, просто привык это делать в консоли запросов, которым пользуется Павел Чистов, там эта возможность есть.Очень полезная.
Переработан диалог выбора из последних файлов запросов: сделаны раздельные колонки "Имя файла" - содержит только имя файла, "Каталог" - содержит путь к каталогу файла. Добавлено контекстное меню с пунктом "Открыть каталог".
Исправлена типизация при работе с параметрами - списками значений
Все сообщения оформлены через команды препроцессора (#Если Клиент Тогда...).
Исправлены мелкие баги.
Верхняя правая кнопка по которой раньше вызывалась справка заменена на подменю с пунктами:
- "Открыть новый Запросник" - открывает новый экземпляр обработки, т.е. теперь можно открывать несколько Запросников одновременно;
- "Справка" - открывает справку
что изменилось выкладываю здесь в комментах, как по другому сделать на инфостарте не знаю
если интересно что менялось в какой версии - можно посмотреть макет "Версии" в обработке
позднее добавлю спец. кнопку в форме справки
в следующей версии ;)
релиз 02.10.2011:
В форме справки добавлена возможность просмотра истории версий.
Исправлена ошибка открытия результата запроса в отдельном окне.
Выполнение алгоритма:
- добавлен режим выполнения алгоритма в транзакции;
- изменено поведение двойного клика на строке структуры результата: теперь вместо вставки поля в конец алгоритма будет выполняться копирование в буфер
- добавлена кнопка копирования в буфер текста алгоритма
вся визуальщина Запросника на управляемых формах должна быть реализована заново
не знаю когда на это появится достаточно времени
да и напрягает, что на управляемых формах внешние обработки открывать нельзя
Ма-а-аленькая хотелка:
В сгенерированом коде вставлять в секции параметров использованные ссылки на значения параметров.
Например, вместо
Запрос.УстановитьПараметр("тТипЦен", );
вставлять
Запрос.УстановитьПараметр("тТипЦіни", Справочники.ТипыЦен.НайтиПоКоду("000001").Сссылка);
Правда надо будет извращаться в случае использования списков.
да и напрягает, что на управляемых формах внешние обработки открывать нельзя
как это нельзя? я обработку из данной публикации попробовал открыть в УТ11 и она открылась, правда, окно было автоматический сгенерированным и пустым.
РазделительГоризонтальный. Попробуйте спустить его до упору вниз и снова поднять. С какой то позиции Разделитель больше не поднимается.
Так же если и вверх до упору поднять и попытаться спустить.
отвечал уже но повторюсь
с привязками в форме все хорошо (кому не лень проверьте в режиме Конфигуратор - найдете косяк с раюостью поправлю)
проблема с платформой увы
похожие косяки видел не только на Запроснике но и на формах других объектов
из личных наблюдений на 8.1 такое встречается гораздо реже
при этом запросники для обеих версий платформы одинаковые
помогает только восстановление положения окна
Проблему подтверждаю. Особенно у меня актуально для экрана на буке с разрешением 1366*768 спасает только меню окна обработки пункт "восстановить положение окна Alt+Shift+R"
Добавлено хранение истории версий запроса.
При выполнении измененного запроса сохраняется его версия (текст запроса и параметры). Когда версий больше одной - рядом с кнопкой "Выполнить запрос" появляются кнопки для управления версиями: кнопки со стрелками для перехода по версиям, кнопка "..." - окрывает окно для просмотра сохраненных версий. При необходимости можно вернуться к любой версии запроса. При сохранении файла запросов информация о версиях также сохраняется.
Создан отдельный диалог описания использования Запросника для отладки запросов из текста модуля. Вызов: меню действий - "Отладка запроса в модуле".
Мелкие доработки и исправления.
Всех с Наступающим! :)))
По нажатию на кнопку обработка формирует строку, подставляя текущее расположение обработки на диске. Данную строку она помещает в буфер обмена.
Остается только переключиться в конфигуратор, нажать Shift+F9, Ctrl+V, и отлаживать запрос.
Если я работаю на разных ПК, то мне нужно каждый раз вычислять раположение обработки, дописывать её название. Это непроизводительно. Данная возможность будет полезна многим.
Для вставки в буфер обмена можно использовать метод, применяемый в обработке универсального обмена данными XML, на форме генерации обработчиков отладки.
Добавлено определение в каком режиме открыт Запросник - внешяя обработка или обработка в составе конфигурации. Соответственно разделены алгоритмы окрытия нового экземпляра Запросника и формирования строки для отладки запроса из модуля для разных режимов открытия.
Исправлена ошибка, возникавшая при добавлении запроса в пустое дерево запросов.
Доработан функционал отладки временных таблиц: теперь можно отлаживать временную таблицу, использующую результаты другой временной таблицы.
У Запросника появился свой сайт
{Форма.Форма.Форма(776)}: Ошибка при вызове метода контекста (Выполнить): {(5, 2)}: Неверные параметры "тзПериоды"
<<?>>&тзПериоды КАК тзПериоды
вызываю из модуля отчета суперзапросник. там
тзПериоды это таблица значений, которая в запрос подтягиватся.
|ВЫБРАТЬ
| тзПериоды.Период
|ПОМЕСТИТЬ втПериоды
|ИЗ
| &тзПериоды КАК тзПериоды
Что с этим можно сделать?
без применения запросника запрос в ошибку не падает.
Доработана функциональность выполнения алгоритма над результатом запроса:
- добавлена возможность использовать собственные параметры в алгоритме. Параметры сохраняются вместе с алгоримом.
- добавлена кнопка очистки алгоритма. При нажатии кноки в текст алгоритма помещается текст по умолчанию.
Добавлена кнопка очистки текста запроса на главной форме.
Добавлена возможность работы с параметрами запроса типа ТаблицаЗначений в режиме отладки запроса. Реализован просмотр и редакирование содержимого параметров данного типа.
///////////
Что то не пойму .. консоль работает под УФ 8.2 или под толстый клиент? Запустил в Предприятии, из Файл - Открыть, пустая форма .. Установил Сервис -> параметры -> Упр.приложение и обычное приложение / Запуск, Толстый клиент (УФ) и в свойствах конфигурации установил Использовать обычные формы в толстом клиенте в управляемом режиме .. все равно пустая форма. Что не так?
Здравствуйте,
да на результат запроса можно влиять только текстом запроса и его параметрами.
Запросник служит для написания и отладки запросов (ну еще можно алгоритмы программные над результатом выполнять), дальнейшие действия с этим результатом выполняет разработчик. Ни отбор, ни группировка, ни условное оформление результата в Запроснике не предусмотрено. Для этих целей лучше использовать механизмы компоновки данных.
Не, обработка мне ваша нравится, в ней множество удобных вещей, но лично для меня, отсутствие возможности задания отбора, заставляет все таки использовать стандартную консоль запросов, даже не смотря на ряд "удобств" в вашей обработке.
Я думаю, это пожелание не только для меня критично, поэтому если вы все таки будете дорабатывать свою обработку, то обратите внимание на мою просьбу.
не совсем понял о чем идет речь
что имелось ввиду под "условия отбора(через фигурные скобки)"
можно пример на простеньком запросе?
и что в этом случае умеет стандартная консоль того что нет в Запроснике?
если речь идет про консоль отчетов, а не запросов, то она по определению функциональнее, так как написана на построителе запросов
..
ВЫБРАТЬ
КлБаза.Филиал КАК Филиал,
КлБаза.Подразделение КАК Подразделение,
КлБаза.Агент КАК Агент,
КлБаза.Контрагент КАК Контрагент
ПОМЕСТИТЬ ТаблицаКлиентов
ИЗ РегистрСведений.КлиентскаяБаза.СрезПоследних(&ДатаКон, {Филиал.*, Контрагент.*, Подразделение.*}) КАК КлБаза
;
..
При этом, в консоле можно в отдельно вкладке "Отбор", выбрать отдельные значения реквизитов "Филиал, Контрагент и Подразделение"
это консоль отчетов, сделанная на построителе отчетов - инструмент гораздо функциональнее чем обычный Запрос с параметрами
консоль отчетов, сделанная на компоновке еще круче в этом смысле :)
Запросник по сути своей не пользуется построителем, т.к. выполняет задачу написания и отладки только запроса как такового, а не построителя с присущими ему настройками и особенностями
так что увы
по причине:
{Форма.Форма.Форма(2730)}: Ошибка при установке значения атрибута контекста (Language)
по причине:
Произошла исключительная ситуация (ScriptControl): A script engine for the specified language can not be created.
неа
первый раз о таком слышу
хотя на многих компах работаю
да и сюда никто не писал пока о таком
могу со своей стороны только в попытку вставить инициализацию этого объекта, чтобы Запросник не валился на нем
но тогда работа со временными таблицами будет не доступна, т.к. с помощью этой компоненты их список в запросе и определяется
Меню дерева запросов:
- удалена кнопка "Редактировать" за ненадобностью;
- добавлена кнопка сворачивания дерева до нулевого уровня.
Выполнение алгоритма над результатом запроса:
- добавлена возможность сохранения алгоритмов в файлы с расширением .alg. Сохраняется текст и параметры алгоритма
Текст запроса:
- добавлены контекстные пункты по созданию запроса ко всем документам всех видов и всем элементам всех справочников
Выполнение алгоритма:
- добавлено отображение времени начала, конца и продолжительности выполнения алгоритма.
Не вставляет в текст алгоритма.
У кнопки "Выполнить алгоритм" нет подменю.
И все же хотелось надеяться что в планах есть создание запросника для управляемых форм.
построчной отладки запроса в 1С нет да и представить это как то не получается :)
В модуле формы "ВыполнениеАлгоритма" в процедуре "УстановитьНачальныйТекстАлгоритма" я заменил:
1) Все "Символы.ВК" на "Символы.ПС"
2) В строках типа: " //примеры кода:", заменил тройной пробел на табуляцию: Символы.Таб + "//примеры кода:"
Теперь стало удобней редактировать алгоритм и ничего не съезжает, думаю это можно перенести и в "типовую" обработку... :)
(306) ну если найдешь косяки - пиши - совершенству нет предела :)
(307) ну подзапросы можно гонять и в режиме выполнения выделенного текста, хотя я в данном случае копирую запрос с параметрами - оставляю только подзапрос и его уже отлаживаю, а вообще посмотрю эту консоль
При удалении всех запросов, выходит ошибка:
ИмяЗапроса = мТекущаяСтрока.Запрос;У себя залотал попыткой... :)
1. заметил, что при копировании текста запроса в новую строку дерева запросов он может пропадать: добавляю новую строку дерева запросов, вставляю туда текст запроса, переключаюсь на другую строку (например, подсмотреть параметры), возвращаюсь на добавленную ранее строку запроса, а там пусто :(
2. жаль, что нет заполнения параметров по другой строке запроса
3. (лично мое:)) часто бывает переусердствую с "esc" и умудряюсь закрыть запрос без сохранения.. ну это, видимо, для себя надо что-то посерьезнее "да"/"нет" придумать ).
1. Тоже замечал редкое пропадание текста - не мог локализовать - теперь поправлю. Спасибо :)
2. Ну я обычно копирую запрос в дереве - с ним копируются все его параметры, а потом меняю текст
3. Во временный файл сохраняется последний ВЫПОЛНЕННЫЙ запрос. Добавлять вопрос "точно ли закрыть Запросник?" перед закрытием формы думаю будет неудобством.
(320) специально отключил эту тему - часто открываю файл чтобы "поиграться" с запросом но сохранять его автоматически мне при этом точно не надо, делать эту настройку отключаемой - лишние дерганья функциональные, да и непонятно как сохранять эту настройку
последний выполненный запрос автоматически сохраняется во временный файл - думаю этого достаточно если вдруг забыл сохранить и закрыл Запросник, ну и кроме того всегда сохраняется запрос при выполнении которого например зависла и вылетела база
Дерево результата запроса: при формировании дерева начальный способ отображения - не раскрывать.
Исправлена ошибка возникавшая при удалении всех запросов из дерева запросов. Исправлена ситуация когда иногда пропадал текст запроса при добавлении новой строки в дереве запросов.
Функция объекта для отлаки внешнего запроса переименована из Отладить() в ОтладитьЗапрос() - для исключения ситуаций когда в модуле приложения существует функция Отладить().
Разработана отдельная форма вывода результата в табличный документ. Из данной формы табличный документ можно сохранить в формате Excel.
Другие незначительные доработки. Спасибо всем кто писал о них в форуме
Да, делаю в управляемом. Но в конфигурации включена возможность использования неуправляемых форм и запускаю в толстом клиенте.
Консоль Чистова при этом запускается. Вобщем жаль конечно что нет возможности запустить. Очень нужно отладить запрос именно в модуле. Может посоветуете что нибудь для отладки запроса в модуле в управляемом варианте? Главное что бы содержимое временных таблиц можно было увидеть.
1) После выполнения запроса можно в ТЧ поучаствовать в формировании положения колонок (но вообще было бы не плохо если бы эти настройки сохранялись и после следующего выполнения запроса, а то они сбрасываются на дефолт)
2) После вышеуказанной настройки было бы удобно программно создавать макет для последующей интеграции в отчет, т.е. шапку таблицы и строку с параметрами, имена параметров как имена полей в запросе, это бы упростило создание отчетов, для отчета мне бы осталось создать только шапку
ОФФТОП: Осталось добавить кнопку "Создать автоматически запрос который нужен" )))
Когда ставишь галку "Выражение" в окне параметров, то невозможно ввести больше 100 символов.
Лично у меня возникла такая проблема: нужно было получить остатки по регистру, не включая движения текущего документа. Попробовал задать границу через диалог - вываливается с ошибкой
{Форма.Форма.Форма(772)}: Ошибка при вызове метода контекста (Выполнить): {(7, 2)}: Ошибка обработки представления "РегистрНакопления.ТоварыВРознице.Остатки:Несоответствие типов (Параметр номер ""1"")"
<<?>>РегистрНакопления.ТоварыВРознице.Остатки(
Ладно, попробовал написать границу явно, как выражение
Новый Граница(Документы.ОтчетОРозничныхПродажах.НайтиПоНомеру("УФ000000079").Дата, ВидГраницы.Исключая);
...и вот тут обнаружил, что строки ввода выражения не хватает. В моем случае буквально несколько символов.
Ради интереса указал выражение
Новый Граница(Документы.ОтчетОРозничныхПродажах.НайтиПоНомеру("УФ000000079").Дата);
такое выражение запросник съел и вывел результат, т.е. границу в выражении указывать можно - нужно лишь дать возможность указывать больше символов в качестве выражения
Для себя добавил закладку, на которой указываются источники, из которых запрос тянет данные. Возможность быстро просмотреть источники запроса, не глядя в текст. По-моему, очень удобно, особенно когда запрос большой.
Вот как это выглядит:
Если хотите, можете добавить в свою консоль.
Консоль с моей доработкой прикреплена.
как появится время - немножко код повнимательнее почитаю, почищу, комментов добавлю
и в вариант для 8.1 надо добавить
в следующей версии обязательно будет эта доработка
а в справке упоминание об авторе :)
не подскажете: в чем может быть причина проблемы. При выполнении запроса не в первый раз сталкиваюсь с тем, что блокируются все таблицы SQL к которым происходит запрос. В консоли сервера 1С - показывает блокировки. Все это до тех пор, пока не закроешь форму запросника. Что в ней такого, что она не отпускает таблицы SQL? В типовой консоли такого не наблюдал
Нашел пока временное решение:
в Процедуре "ВыполнитьЗапрос" в начало вставить:
обТекущийЗапрос = Неопределено;
- по крайней мере это с одной стороны позволит работать со временными таблицами и при нажатии кнопки "Выполнить запрос" - блокировки будут сбрасываться в 0. При закрытии формы они на совсем сбрасываются. По крайней мере они не будут расти лавинообразно если с консолью целый день проработать
хотя перед выполнением запроса у меня стоит уничтожение предыдущих временных таблиц
но видимо обнуление объекта запроса надежнее - добавлю в след. релиз
спасибо :)
Если запросов много, то обработка и открывается и закрывается очень долго.
Файл *.sel весит примерно 170 мб.
Недавно это фалй по каким-то причинам не сохранился полностью. После чего, обработка проста перестала открыватся,
ругаясь сюда - ПолученноеЗначение = ?(ФайлЗначения.Существует(), ЗначениеИзФайла(мИмяФайла), Неопределено);, что обработка не может прочитать файл.
Ну если на открытие и закрытие обработки впринципе я готов ждать пару минут, то на сохранение запросов каждый раз ждать пару минуть, это ж *****.
Не ужели выход только резать файл *.sel?
Если да, то может подумать на подключение нескольких sel-файлов в обработку???
Так чтобы разбив их на отдельные sel-файлы, во время сохранения, сохранялся только тот файлик в котором поправлен запрос, а остальное не трогалось. Скорость закрытия и сохранения во время работы мгновенно вырастет в разы.
А так же, добавить форму выбора sel-файлов, типа "Последние файлы", только напротив sel-файла возможность поставить галочку "Показывать в дереве", чтобы можно было отключать не нужные в данный момент sel-файлы.
с границей и моментом времени работа полноценная
1. При копировании запроса в дереве, он сразу становился активным, а не родитель как сейчас;
2. Добавить кнопки свернуть и развернуть все запросы до верхнего/нижнего уровня родительских запросов.
Мелочь, конечно, но нужная! :) За обработку респект!
с первым пунктом согласен, правда у меня при копировании активным остается копируемый запрос а не его родитель
не понял пункт 2
кнопка сворачивающая дерево запросов до верхнего уровня уже есть
какого функционала не хватает?
это же и в версию 8.1 надо будет добавлять, если есть готовый вариант для нее - кидай тоже на почту
Когда в запросе нажимаешь "Создать описание временной таблице" (находится рядом с "Создать вложенный запрос") и указываешь в имени таблицы "&МояТаблица" то в параметрах появляется параметр "МояТаблица" с типом "ТаблицаЗначений".
Учитывая что по другому таблицу значений в запросах никак нельзя использовать (на сколько я знаю), то необходимости самому ручками заводить такой параметр отпадает.
Доработки:
новая форма "УстановкаТипаЗначения"
изменена форма "ТаблицаЗначений", добавлены две кнопки
изменен модуль формы "Форма", стр 690
Для 8.1 я не делал, т.к. я не испытваю необходимости в "Запросник81", да и платформа морально устарела.
Я давно не открывал платформу 8.1, но мне кажется что все тоже самое можно и на 8.1 сделать...
Если есть вопросы или пожелания, внимательно слушаю... :)
новая версия с этой и другими доработками будет на этой неделе, сейчас на тестировании
И еще, возможно, уже есть, но добавьте кнопку Развернуть дерево. Раз парсил запрос из 16 ВТ 8)
по поводу случайного удаления и порчи запросов не забывайте, что во временном файле всегда храниться последний вариант выполненного файла запросов
это
особенно полезно когда выполнение запроса привело к зависанию или вылетанию приложения а файл запросов не сохранили
в списке последних открытых файлов это файл query_temp.sel
Параметры запроса: для параметров типа "ТаблицаЗначений" реализована возможность формирования структуры полей и заполнения содержимого. (спасибо за участие DrBlack :))
Поле описания запроса сделано многострочным с возможностью расширенного редактирования.
Minor bugs fixed.
Сегодня обнаружил недостаток.
Понадобилось передать ТЗ параметром. При описании колонок невозможно выйти из режима редактирования никаким образом, если оказалось незаполненным "Имя колонки".
Выпала ошибка
{Форма.Форма.Форма(773)}: Ошибка при вызове метода контекста (Выполнить): {(11, 2)}: Неверные параметры "ВнешнийИсточник"
<<?>>&ВнешнийИсточник КАК ТЗ
При открытии файла *.Sel выдаётся предупреждение:
{Форма.Форма.Форма(1941)}: Итератор для значения не определен
Для каждого СтрокаИсходнойТаблицы из ИсходнаяТаблицаВыборок ЦиклПри нажатии "Ок", дальше всё хорошо.
Это же предупреждение вылетает при выборе запросов. Но только 1 раз, после нажатия "Ок", и повторного выбора этого запроса ошибки нет.
Скорее всего это происходит из-за того что у меня ИсходнаяТаблицаВыборок ="", а перед циклом идёт проверка только на "Неопределено".
Кстати, может писали, может нет, но было бы не плохо видеть итоги по числовым колонкам в таблице результата запроса :)
Может в текущий момент "эта особенность программы" (как любят говорить в 1С) и исправлена.
Но только что разработал запрос, потратил пару часов. Добавил новый запрос, а первый пропал! И это уже не первый раз такие подставы.
По сравнению с этим, все остальные плюсы меркнут
дело в том что я от серьезной разработки в 1С я уже год как отошел, с управляемыми формами как следует разобраться не довелось, так что от меня управляемого Запросника нет смысла ждать
если энтузиаст найдется - будет круто - все коды открыты и на меня в принципе можно не ссылаться лишь бы вещь получилась полезная
рад что смог создать нужный вам инструмент :)
Но буквально сегодня обнаружил один неприятный сюрприз. При отладке запроса, в запрос был передан параметр с 4 знаками после запятой, а запросник его принял только с 3. Я долго не мог понять, что не так...
В код запросника пока не лез.
КОГДА ""<<?>>
Обход - строку ";" указывать в параметрах
Восстановлен функционал работы с параметрами типа ТаблицаЗначений.
Добавлен расчет сумм в колонках результата запроса и результата временной таблицы.
Добавлена возможность вывода в табличный документ результата временной таблицы в табличный документ.
Добавлен расчет суммы выделенных ячеек в форме табличного документа.
Добавлена возможность задавать заголовок окна Запросника при вызове из запроса для отладки из модуля.
Интерфейсные доработки.
Отображение типа значения текущей ячейки вынесено в нижнюю часть формы и работает как при просмотре результата запроса в целом так и при просмотре результатат временной таблицы.
Исправлен код для отладки запроса из модуля в режиме работа Запросника как встроенной обработки.
Добавлена установка ширины колонок таблицы результата запроса и результата временной таблицы = 20.
При редактировании параметра типа Список значений, при добавлении нового элемента списка тип нового элемента автоматически присваивается равный типы предыдущего элемента.
Добавлены кнопки очистки списков значений и таблиц значений при редактировании значений параметров соответствующих типов.
ВАЖНО:
Добавлена возможность Сохранения/Загрузки файла с параметрами запроса (кнопки Сохранить... и Загрузить...).
Также реализован программный метод СохранитьПараметрыЗапросаВФайл(Запрос, ИмяФайла) с помощью которого можно "перехватить" и сохранить параметры объекта типа "Запрос" прямо во время исполнения программного кода.
Возможности и примеры отладки запросов с помощью Запросника "на лету" подробно описаны в пункте "Отладка запроса в модуле" (подменю на кнопке со стрелочкой в правом верхнем углу Запросника).
Оптимизирован интерфейс.
P.S. напоминаю про одну мегафичу Запросника про которую не все (как оказалось) знают:
перед выполнением запроса Запросника сначала сохраняет текущий вариант запроса с параметрами и прочим барахлом во временный файл а потом уже начинает выполнение
т.е. если в процессе выполнения запроса программа по каким то причинам вырубилась - текущий запрос всегда сохранен
чтобы при следующем запуске его восстановить надо перейти к истории запросов (кнопочка с часиками над деревом запросов) и первой строкой там всегда временный файл в котором находится последний запущенный на выполнение запрос
даже если все сломалось - труды не пропадут )))
На быструю руку расширил длину типа строки в значениях параметров и дописал функцию в модуль:
Функция ПолучитьТЗизЗапроса(ТекстЗапроса) Экспорт
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
Возврат Запрос.Выполнить().Выгрузить();
КонецФункции //ПолучитьТЗизЗапроса
ПоказатьВ основном запросе делаем выборку из ТЗ как параметр. В параметрах задаем выражение для ТЗ:
ПолучитьТЗизЗапроса("Выбрать ....")Но еще лучше сделать, когда в тип параметра с таблицой значений может заполнятся из другого запроса.
Уважаемый Тезин, предлагаю внести небольшую доработку, а именно возможность использования в качестве параметров, значения с типом "УникальныйИдентификатор".
Данный тип недоступен при интерактивном выборе типов, я обошел это так (все действия в модуле формы "Форма"):
Процедура ПараметрыЗначениеПараметраНачалоВыбора(Элемент, СтандартнаяОбработка)
<РоднойКод>
Если ТипЗнч(ТекДанные.ЗначениеПараметра) = Тип("УникальныйИдентификатор") Тогда
СтандартнаяОбработка = Ложь;
пТекСтр = Строка(ТекДанные.ЗначениеПараметра);
Если НЕ ВвестиСтроку(пТекСтр, "Введите уникальный идентификатор:", 36, Ложь) Тогда
Возврат;
КонецЕсли;
пУИ = ТекДанные.ЗначениеПараметра;
Попытка
пУИ = Новый УникальныйИдентификатор(пТекСтр);
Исключение
Предупреждение("Не удалось преобразовать в уникальный идентификатор!");
КонецПопытки;
ТекДанные.ЗначениеПараметра = пУИ;
КонецЕсли;
Показать
//////////////////////////////////////////////////////////// ////////////////////
// ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ
пТипЗначения = Новый ОписаниеТипов(Параметры.Колонки.ЗначениеПараметра.ТипЗначения, "УникальныйИдентификатор");
пТекКол = Параметры.Колонки.Найти("ЗначениеПараметра");
пИндКол = Параметры.Колонки.Индекс(пТекКол);
Параметры.Колонки.Удалить(пТекКол);
Параметры.Колонки.Вставить(пИндКол, "ЗначениеПараметра", пТипЗначения, "Значение параметра");
ЭлементыФормы.Параметры.Колонки.ЗначениеПараметра.ЭлементУправления.ТипЗначения = пТипЗначения;
ПоказатьEnjoy! :)
1С:Предприятие 8.3 (8.3.11.3034)
Ошибка инициализации модуля: ВнешняяОбработка.Запросник.Форма.Форма.Форма
по причине:
{ВнешняяОбработка.Запросник.Форма.Форма.Форма(2892)}: Ошибка при вызове конструктора (COMОбъект)
по причине:
-2147221164(0x80040154): Класс не зарегистрирован
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 72969
Создание 13.07.10 16:27
Обновление 27.10.16 19:56
Просмотры 82148
Загрузки 4894
Рейтинг
494
Комментарии 408
Код открыт Не указано
Рубрики Инструментарий разработчика
Кому Разработчик
Тип файла Внешняя обработка (ert,epf)
Платформа 1С:Предприятие 8
Конфигурация 1C:Бухгалтерия
Операционная система Не имеет значения
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)