47
Рейтинг

nikolav



  •   Регистрация: 19.02.2019 (5 лет назад)

  •   Был(а) на сайте: сегодня в 14:53

Подписчики 8

Рейтинг 47

Консоль кода с поддержкой объявления процедур и функций, с дополнительными функциями отслеживания и вывода значений

Инструменты и обработки Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m) Внешняя обработка (ert,epf) Инструментарий разработчика

В статье представлено решение давней проблемы всех консолей кода, это невозможность объявлять в них процедуры и функции, а также использование метода Возврат для раннего выхода из исполняемого кода. Также затронута тема вывода результатов работы исполняемого кода, что зачастую ограничено функцией Сообщить. Попутно приводится моё видение того, как должно выглядеть и работать дерево объектов конфигурации в консоли запросов. Обработки подходят для всех конфигураций, работающих в управляемых формах 1С версии 8.3.15 и выше (тестировалось в ЗУП 3.1, ERP 2.5, БП 3.0, УНФ 3.0).

1 стартмани

24.05.2023    6771    157    nikolav    40       

48

Комментарии

DevГенератор схемы компоновки данных (СКД), написание кода схемы программно#5 07.02.24 11:53
Отличная обработка, уже применил на практике, нужно было программно модифицировать схему отчета, чтобы сохранить его в таблицу значений. Обработка сэкономила несколько часов, не пришлось продираться через справку и тратить время на проверку предположений.

Пожелания
1. не генерировать код для значений, которые уже установлены по-умолчанию конструктором объекта (краткий режим)
2. сделать что-то с выравниванием пробелами, бесяче это. Для себя конечно исправил автозаменой по исходникам
3. разделять строки на группы, например строки добавления отбора отделять пустой строкой, иначе сливается в цельную простыню.
DevКонсоль запросов с графом (Анализатор сложных запросов)#310 06.02.24 8:30
На запросе вида:
ВЫБРАТЬ 1
ПОМЕСТИТЬ Вт1
;
ВЫБРАТЬ 2 КАК Ссылка
ПОМЕСТИТЬ Вт2
;
ВЫБРАТЬ
Т.*
ИЗ
Справочник.Валюты КАК Т

ЛЕВОЕ СОЕДИНЕНИЕ Вт1
ПО (ИСТИНА)

ГДЕ
Т.Ссылка В (ВЫБРАТЬ Ссылка ИЗ Вт2)

Вт1 выпадает из общей схемы запроса.
DevКонсоль запросов с графом (Анализатор сложных запросов)#309 30.11.23 13:15
1. На запросе вида:
ВЫБРАТЬ 1
ПОМЕСТИТЬ Вт
;
УНИЧТОЖИТЬ Вт
;
ВЫБРАТЬ 2
ПОМЕСТИТЬ Вт
;
ВЫБРАТЬ * ИЗ Вт

выдает ошибку:
Не удалось прочитать параметры запроса.{ВнешняяОбработка.ParserSQL.Форма.Форма.Форма(347)}: Ошибка при вызове метода контекста (НайтиПараметры): {(5, 11)}: Временная таблица уже существует "Вт"
ПОМЕСТИТЬ <<?>>Вт

Команда "Добавить уничтожение временных таблиц" уничтожила этот запрос, потеряв команду УНИЧТОЖИТЬ; возможности откатиться нет.

2. Для формы поставьте свойство ВертикальнаяПрокрутка = Использовать при необходимости, а то плохо отображается.

3. В отображение запроса html добавить бы хоть минимальную раскраску ключевых слов, параметров и источников данных.
DevКонсоль кода с поддержкой объявления процедур и функций, с дополнительными функциями отслеживания и вывода значений#42 08.08.23 15:04
(41) Идея хорошая, когда-нибудь будет. Сейчас можно использовать функцию Вывести, она покажет содержимое структуры или массива, пока к сожалению не в дереве, а только в таблице.
DevКонсоль кода с поддержкой объявления процедур и функций, с дополнительными функциями отслеживания и вывода значений#40 10.07.23 7:09
(39) Вы первый с такой проблемой. Напишите подробно какая именно ошибка в какой строчке возникает, и какой код выполняете; попробуйте выполнить что-нибудь совсем примитивное вроде "Сообщить(2+2);". Закрыть может не получаться из-за того, что обработка предлагает сохранить код в файл, убедитесь что у вас это окно не возникает где-нибудь на втором мониторе или может прячется. И еще, удалите или отключите все отслеживания переменных, возможно в них используется какая-то несуществующая переменная, это тоже может помешать выполнению.
DevКонсоль кода с поддержкой объявления процедур и функций, с дополнительными функциями отслеживания и вывода значений#38 03.06.23 12:41
(37) Сделал скриншот. Приведен код открытия доп. отчета, выполняется на клиенте, объявлена серверная функция, в основном коде есть досрочный возврат по её результатам.

Прикрепленные файлы:

Снимок открытие отчета.JPG
DevКонсоль кода с поддержкой объявления процедур и функций, с дополнительными функциями отслеживания и вывода значений#36 30.05.23 12:53
(32) Автор уже пожалел об этом)) Но если бы не затронул, то уже запинали бы, что не оптимально.
DevКонсоль кода с поддержкой объявления процедур и функций, с дополнительными функциями отслеживания и вывода значений#28 30.05.23 9:05
(26)(27) Спасибо, посмотрел. Выгрузка в файлы через конфигуратор с последующей коррекцией кода модуля или распаковка / упаковка сторонней утилитой накладывает достаточно много ограничений. Сценарий "отправил обработку и скрипт клиенту" уже не прокатит.
DevКонсоль кода с поддержкой объявления процедур и функций, с дополнительными функциями отслеживания и вывода значений#24 30.05.23 8:32
(21)(23) Напишите пожалуйста, как упаковать код в модуль внешней обработки программно, т.к. изначально тоже хотел пойти этим путем. Для упаковки будет нужен доступ к конфигуратору и будет ли это работать на клиент-серверной базе? Будет ли просить подтверждение на подключение внешней обработки?
(22) Проблема производительности действительно немного преувеличена, в реальной работе наткнулся только 1 раз, когда загружал справочник из Excel, да и то оказалось, что нужно дописать "ОбменДанными.Загрузка = Истина". Для разового кода достаточно текущей производительности, часто используемые функции можно перенести в модуль.