Кому приходится писать и отлаживать запросы с большим количеством временных таблиц, постоянно сталкивается с необходимостью проверить содержимое временных таблиц.
А если их много, да называются похоже? На этот случай я доработал консоль запросов, разработанную Евгением Лавелиным - теперь все временные таблицы выводятся в меню, откуда их можно быстро открыть.
Файлы
ВНИМАНИЕ:
Файлы из Базы знаний - это исходный код разработки.
Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы.
Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных.
Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
0% комиссии — оплата напрямую исполнителю;
Исполнители любого масштаба — от отдельных специалистов до команд под проект;
Прямой обмен контактами между заказчиком и исполнителем;
Безопасная сделка — при необходимости;
Рейтинги, кейсы и прозрачная система откликов.
Кому приходится писать и отлаживать запросы с большим количеством временных таблиц, постоянно сталкивается с необходимостью проверить содержимое временных таблиц. А если их много, да называются похоже? На этот случай я доработал консоль запросов, разработанную Евгением Лавелиным (http://www.lavelin.ru) - теперь все временные таблицы выводятся в меню, откуда их можно быстро открыть, и при необходимости - уничтожить.
Основной режим работы - с использованием постоянного менеджера временных таблиц. В таком режиме при успешном выполнении запроса в списке временных таблиц появляются все таблицы, которые создаются в запросе. И убираются все таблицы, которые уничтожаются в выполняемом запросе.
При выборе временной таблицы в меню ее содержимое открывается в отдельном окошке. Каждая таблица открывается в своем окне. Можно отсортировать данные по одному столбцу, можно вывести список в табличный документ.
Улучшен анализ текста запроса - теперь закомментированные строки пропускаются (не создаются лишние строки в списке таблиц и не убираются из меню те таблицы, уничтожение которых закомментировано).
Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя.
Решение в Реестре отечественного ПО
Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм. Обновление версии от 21.04.26
Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше.
Далее в публикации:
MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.
Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.
Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5.
Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки. 1.3.11 Доработан механизм контекстной подсказки по метаданным
Мне консоль от Лавелина самому очень нравится.
Вариант с менюшками мне показался наиболее простым и быстрым в доработке...
Кстати, если кто подскажет как РегЕкспами можно отсечь строки, начинающиеся на комментарий - буду очень благодарен :) Самому не получилось найти работающий вариант.
Доработка очень полезная.
Только при выполнении запроса сразу несколько раз ругается, что временная таблица уже существует (может это только у меня).
Выход: удаление временных таблий перед выполнением запроса
(12) redcat, если один и тот же запрос выполнять несколько раз, то ругаться будет однозначно - ведь по умолчанию используется один и тот же менеджер ВТ, соответственно если не уничтожать таблицу явно (через выполнение "УНИЧТОЖИТЬ <ИмяТаблицы>"), она в нем будет оставаться.
Если не нужно чтобы так было - просто уберите галочку "Использовать менеджер временных таблиц". Тогда каждый раз для запроса будет создаваться временный менеджер.
Кстати, немного доработал анализ текста запроса - теперь закомментированные строки строки должны пропускаться.
Большое спасибо cool.vlad4 за идею в (6).
Конструктор запроса, как советовал ediks (8), не получается - если ему передавать текст запроса, ссылающийся на временную таблицу, созданную в другом запросе - выскакивает ошибка "Таблица Такая-то не найдена" :(
(14) Поручик, посмотрел - там происходит поиск имен таблиц по слову "ПОМЕСТИТЬ". Я тоже так в начале думал сделать, но что если в начале строк идет комментарий "//"? А еще иногда строка может быть такой:
//ВЫБРАТЬ ДАТАВРЕМЯ(2011,01,31,23,59,59) КАК Период ПОМЕСТИТЬ ВТПериоды
Поэтому я и делал через RegExp, чтобы закомментированные строки не учитывать.
(15) cool.vlad4 - перед выполнением запроса я не делаю попытки уничтожить создаваемые в запросе таблицы. Считаю что так лучше - есть вероятность перезаполнить ВТ и не увидеть старые данные.
(17) to (15) Я у себя тоже добавил перед выполением запроса принудительное удаление временных таблиц. Считаю, что после выполнения запроса интересуют именно данные, которые были использованы при выполнении основной части зароса.
В смысле с ВТ? Там наверное перед выполнением запроса с ВТ, проводится попытка уничтожения ВТ. Я себе также сделал, но потом добавил и ручное уничтожение(сделал красный крестик напротив списка таблиц)
Однозначно полезная штука, однако есть крохотный недостаток для авралоподобных случаев, вынудивший откомментировать:
нажав кнопку "получить параметры из запроса" и заполнив некоторые "списком значений", как-то забываешь изменить колонку "В" на "Список", что при повторном нажатии и перезаполнении приводит к очистке списков их значений.
После четырех лет работы со стандартной консолью большинство действий доведено до автоматизма + по административным причинам использую обе обработки параллельно, следовательно - пришлось доделать ))