Учитесь как консоли запросов делать
Сумел-таки выложить официально
Без лишних серверных вызовов. Без дерева. В табличной части. Без обработчиков. Изящная и простая. Настоящая 1сная
А то Люлюк за 8 тысяч что ли продаёт. УКО. Он ж щас там такое выдал. Не щас. Я давно не следил. Люлюк vs Tormozit
выводить ссылку как гуид нету не зачот
вот и фсьо, [...]
ой что это
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(10,2)}: Переменная не определена (ЭтотОбъект)
<<?>>ЭтотОбъект.ОписаниеТиповДокумент = Документы.ТипВсеСсылки();
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(11,2)}: Переменная не определена (ЭтотОбъект)
<<?>>ЭтотОбъект.ОписаниеТиповСписокЗначений = Новый ОписаниеТипов("СписокЗначений");
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(12,2)}: Переменная не определена (ЭтотОбъект)
<<?>>ЭтотОбъект.ОписаниеТиповСтрока = Новый ОписаниеТипов("Строка");
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(88,31)}: Переменная не определена (ЭтотОбъект)
Если ИдентификаторИсточник = <<?>>ЭтотОбъект.ТекущийИдентификатор Тогда
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(95,81)}: Переменная не определена (ЭтотОбъект)
ТекДанныеПриемник.Адрес = ПоместитьВоВременноеХранилище(НоваяСтруктураЗапроса, <<?>>ЭтотОбъект.УникальныйИдентификатор);
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(680,2)}: Переменная не определена (ЭтотОбъект)
<<?>>ЭтотОбъект.ТекстЗапроса.Очистить();
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(681,2)}: Переменная не определена (ЭтотОбъект)
<<?>>ЭтотОбъект.ПараметрыЗапроса.Очистить();
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(682,2)}: Переменная не определена (ЭтотОбъект)
<<?>>ЭтотОбъект.ИсточникиДанных.Очистить();
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(683,2)}: Переменная не определена (ЭтотОбъект)
<<?>>ЭтотОбъект.ПорядокОбхода.Очистить();
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(684,2)}: Переменная не определена (ЭтотОбъект)
<<?>>ЭтотОбъект.РезультатТабличныйДокумент.Очистить();
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(698,65)}: Переменная не определена (ЭтотОбъект)
Строка.Адрес = ПоместитьВоВременноеХранилище(СтруктураЗапроса, <<?>>ЭтотОбъект.УникальныйИдентификатор);
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(706,46)}: Переменная не определена (ЭтотОбъект)
СтруктураЗапроса.Вставить("ТекстЗапроса", <<?>>ЭтотОбъект.ТекстЗапроса.ПолучитьТекст());
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(707,49)}: Переменная не определена (ЭтотОбъект)
СтруктураЗапроса.Вставить("ПараметрыЗапроса", <<?>>ЭтотОбъект.ПараметрыЗапроса.Выгрузить());
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(708,48)}: Переменная не определена (ЭтотОбъект)
СтруктураЗапроса.Вставить("ИсточникиДанных", <<?>>ЭтотОбъект.ИсточникиДанных.Выгрузить());
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(709,47)}: Переменная не определена (ЭтотОбъект)
СтруктураЗапроса.Вставить("ПорядокОбхода", <<?>>ЭтотОбъект.ПорядокОбхода.Выгрузить());
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(728,2)}: Переменная не определена (ЭтотОбъект)
<<?>>ЭтотОбъект.ТекстЗапроса.УстановитьТекст(СтруктураЗапроса.ТекстЗапроса);
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(729,2)}: Переменная не определена (ЭтотОбъект)
<<?>>ЭтотОбъект.ПараметрыЗапроса.Загрузить(СтруктураЗапроса.ПараметрыЗапроса);
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(730,2)}: Переменная не определена (ЭтотОбъект)
<<?>>ЭтотОбъект.ИсточникиДанных.Загрузить(СтруктураЗапроса.ИсточникиДанных);
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(731,2)}: Переменная не определена (ЭтотОбъект)
<<?>>ЭтотОбъект.ПорядокОбхода.Загрузить(СтруктураЗапроса.ПорядокОбхода);
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(732,2)}: Переменная не определена (ЭтотОбъект)
<<?>>ЭтотОбъект.РезультатТабличныйДокумент.Очистить();
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(841,17)}: Переменная не определена (ЭтотОбъект)
Запрос.Текст = <<?>>ЭтотОбъект.ТекстЗапроса.ПолучитьТекст();
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(853,24)}: Переменная не определена (ЭтотОбъект)
Для Каждого Строка Из <<?>>ЭтотОбъект.ПараметрыЗапроса Цикл
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(876,24)}: Переменная не определена (ЭтотОбъект)
Для Каждого Строка Из <<?>>ЭтотОбъект.ИсточникиДанных Цикл
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(945,17)}: Переменная не определена (ЭтотОбъект)
Запрос.Текст = <<?>>ЭтотОбъект.ТекстЗапроса.ПолучитьТекст();
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(948,27)}: Переменная не определена (ЭтотОбъект)
СтарыеПараметрыЗапроса = <<?>>ЭтотОбъект.ПараметрыЗапроса.Выгрузить();
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(950,2)}: Переменная не определена (ЭтотОбъект)
<<?>>ЭтотОбъект.ПараметрыЗапроса.Очистить();
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(977,2)}: Переменная не определена (ЭтотОбъект)
<<?>>ЭтотОбъект.ПараметрыЗапроса.Загрузить(НовыеПараметрыЗапроса);
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(1050,31)}: Переменная не определена (ЭтотОбъект)
Запрос_ПрочитатьДанныеСтроки(<<?>>ЭтотОбъект.ТекущийИдентификатор);
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(1081,4)}: Переменная не определена (ЭтотОбъект)
<<?>>ЭтотОбъект.ТекущийИдентификатор = НовСтр.Идентификатор;
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(1086,70)}: Переменная не определена (ЭтотОбъект)
НовСтр.Адрес = ПоместитьВоВременноеХранилище(Стр.СтруктураЗапроса, <<?>>ЭтотОбъект.УникальныйИдентификатор);
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(1136,7)}: Переменная не определена (ЭтотОбъект)
Если <<?>>ЭтотОбъект.ПорядокОбхода.Количество() = 0 Тогда
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(1137,12)}: Переменная не определена (ЭтотОбъект)
НовСтр = <<?>>ЭтотОбъект.ПорядокОбхода.Добавить();
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(1169,2)}: Переменная не определена (ЭтотОбъект)
<<?>>ЭтотОбъект.РезультатТабличныйДокумент.Очистить();
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(1170,2)}: Переменная не определена (ЭтотОбъект)
<<?>>ЭтотОбъект.РезультатТабличныйДокумент.Вывести(ТабДок);
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(1251,15)}: Переменная не определена (ЭтотОбъект)
Если Итер = <<?>>ЭтотОбъект.МаксимальноеЧислоСтрок Тогда
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(1269,24)}: Переменная не определена (ЭтотОбъект)
СтрокаПорядкаОбхода = <<?>>ЭтотОбъект.ПорядокОбхода[НомерСтроки];
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(1279,8)}: Переменная не определена (ЭтотОбъект)
Если <<?>>ЭтотОбъект.ВыводитьСвойстваВыборки Тогда
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(1314,8)}: Переменная не определена (ЭтотОбъект)
Если <<?>>ЭтотОбъект.ВыводитьСвойстваВыборки Тогда
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(1327,8)}: Переменная не определена (ЭтотОбъект)
Если <<?>>ЭтотОбъект.ПорядокОбхода.Количество() > НомерСтроки + 1 Тогда
{Обработка.КонсольЗапросовПерсональная.Форма.Форма.Форма(1331,15)}: Переменная не определена (ЭтотОбъект)
Если Итер = <<?>>ЭтотОбъект.МаксимальноеЧислоСтрок Тогда
крч ламер
две вещи которых мне надо нет
ВР должен в базу знаний забрать. Ты видел как я кодю? Полное форматирование. А то Зак мне такую херню давал. Люди без отступов пишут
Aistovich самых нужных
остальное даже не смотрел
Ну у меня свой стиль. Зато без этой фигни. 46 серверных вызовов, на. У УКО. Да ты [...]. Моя консоль самая чоткая. Ни у кого такой нет
ты в 1с вроде с 2007 года а что такое выводить ссылку как в гуид вообще не осилил, это не 1с ни разу
сделаешь
ДляСсылокВыводитьГУИД
и
открытие в толстом
я подумаю посмотреть или нет
Какой толстый. [...]?
а мне чё прыгать между [...] что ли?
голову себе ломать, тут так двигать тут так
Только тонкий. Щас 1с семимильными шагами развивается. Щас даже Асинх и Ждать. Асинхронщина. Щас Элемент. 1С рвёт планету. Эту лучшая RAD на земле
Фиксин правильно на хабре говорил Нет аналогов нашей 1С
это все равно для половины 1с, я пришел на одну работу там одна консоль, на другую там другая, ну и как твою "оптимальную" носить, для полу1с?
УПП ещё лет 20 будет заместо нетленок ходить
я тебе зачем ссылку на медфильм дал?
потому что лекарство оно одно, а если человек заболел он сдохнет
давай исправляй не выябывайся
Какой толстый. Tormoxit на толстом делал ИР, и не вывез на тонкий. Щас Люлюк рулит. Лучшая разработка
За толстый клиент сразу неуважуха
Фиксин ещё [...], что зря так. Надо по-другому. Только тонкий клиент
смешались и бог и фиксин, пролетарии хуле с них взять
(6) не работает
Aistovich
вот вэээщьостальное зачем оно надо
Это не моя консоль. Что ж ты [...]
Давай лучше про 1С. Что ж вы все толстые. 1С не умеет делать сервер-клиентые вызовы. Как так?
Щас вообще тема такая, что рейдерство будет.
Похитят фирму Нуралиева
Была же статья в газете. Сразу столько слухов.
Aistovich кнч не твоя, эта работает везде и как надо
Ай. Дурашка ты. Думал, нормальный поц. Балбес по ходу
слышь тебя пора выключить накуй ты ни разу не инженер
код ровный яблоко 314данутое
выключил к [...], такие мир не спасут
на инфостарте не взяли. короче, дописал. есть ещё конечно планы
скопирую, что писал. лень рпедактировать
казал А, говори и Б, или новый релиз сосноли
Моё почтение, господа.
В прошлый раз я выкладывал сырую недоделанную обработку (как бы сказал А). Надо исправляться (как бы сказать Б).
Когда возобновил разработку, то меня в хорошем смысле занесло в параллельное, но связанное направление, так что даже пришлось усилием воли возвращаться к доработке основной обработки. После исправления ошибок жажду творчества стали утолять очередные рефакторинги, а потом и новая функциональность. В то же время, хотя это и домашний проект, старался соблюсти разумные временные ограничения на релиз.
Это простая обработка с основными (или минимальными) возможностями. Впоследствии было создано миниатюрное расширение, чтобы сохранять запросы из отладки. Как всё устроено в сторонних решениях особо не изучал (да и стартмани нет), поэтому мог не соблюсти какие-то "каноны". Сравнивать данную обработку с популярными утилитами смысла нет. Публикую как любительскую разработку базового уровня.
Описание обработки
Ключевые объекты расширения
======================================
* Обработка "Консоль запросов": может быть выгружена и использоваться отдельно от расширения.
* Регистр сведений "Запросы".
Чтобы сохранить запрос в регистр из отладчика, нужно вычислить выражение вида bm_Запросы.СохранитьЗапрос(Запрос, Наименование). Наименование — необязательный параметр.
Особенности работы с консолью запросов
======================================
* Отсутствует событие активизации строки (чтобы не нагружать форму), поэтому выбор текущего запроса (выделяется отдельным цветом) осуществляется через DoubleClick.
* Получение кода на встроенном языке (параметры извлекаются из текста запроса, заполнения в коде нет).
* Вывод результата запроса / пакета запросов в табличный документ.
* Запросы (сохранённый запрос также можно выгрузить из регистра) сериализуются как дерево значений в файлы с расширениями
bmqval — простая сериализация через ЗначениеВФайл;
bmqxml — выгрузка в xml через СериализаторXDTO; этот способ добавлен позже специально для работы в безопасном режиме без разрешений; объём файла здесь больше, и время чтения/записи тоже.
Особенности работы с запросом
=====================================
* Параметры запроса и описания врем. таблиц заполняются автоматически (по кнопке Заполнить).
Колонки таблиц значений из описаний врем. таблиц создаются автоматически, тип значения указывается самостоятельно.
* Тип значения параметра запроса устанавливается автоматически при заполнении.
Согласно задумке редактировать тип значения параметра после автозаполнения не нужно. "Расширение" типа значения указывается в одноимённой колонке.
Например, чтобы преобразовать значение параметра типа Дата в Границу можно выбрать расширение "Дата включая" (граница с датой), "Момент включая" (граница с ссылкой).
В общем случае (за некоторыми исключениями) доступно расширение "Список значений" (наверно здесь уместней флаг типа "Доступен список значений", но эта мысль пришла позже).
Тем не менее, редактирование типа значения параметра технически возможно. Выбор типа производится через специальную форму, где доступно указание некоторых типов, которые невозможно выбрать через стандартную форму выбора.
* Некоторые типы значений параметров запроса преобразуются при передаче между формой и запросом (туда и обратно).
Так, тип МоментВремени в форме это ссылка на документ, тип Тип это ОписаниеТипов. При передаче в запрос ссылка на документ преобразуется в МоментВремени, ОписаниеТипов в Тип. При перехвате запроса выполняется обратное преобразование.
* В дерево запросов добавлена колонка "Исключение". Означает, что произошло исключение при установке текста схемы запроса. Понадобилась в связи с тем, что рабочий текст запроса может быть не прочтён схемой запроса (и обычным конструктором запроса тоже): такое может случиться из-за особенностей написания вложенного запроса в условии отбора виртуальной таблицы (сокращённый синтаксис / поле через точку / может, что-то ещё).
Конечно, если запрос проектируется в консоли, то он должен открываться в конструкторе запроса, и эта колонка не нужна, но если запрос перехвачен, то информация полезна. Если текст запроса вызывает исключение в схеме запроса, но сам запрос выполняется, и выполняется пакетно, в заголовке вывода будет указано "Сформировано без схемы запроса", а вместо наименований временных таблиц будут номера запросов.
Нюансы работы с временными таблицами
====================================
* В табличной части обработки Врем. таблицы добавлена колонка Используемая ВТ. Здесь можно выбрать "предопределённую" врем. таблицу. Чтобы добавить выбор предопр. врем. таблицы, нужно доработать модуль обработки.
Сейчас добавлена одна предопр. врем. таблица ВидыСубконто (видоизменённая функция из типовой конфигурации). Эта врем. таблица формируется при отражении документа в рег. учёте и не может быть помещена из таблицы значений, так как содержит тип колонки Тип.
* При перехвате запроса также может быть, что описание типа колонки пустое. Может произойти, если в запросе выбирается Неопределено. В этом случае перед обратным помещением врем. таблицы описание типов формируется как "Null, Число".
Как реализована отладка запроса в случае расширения?
чо, заценили хоть. я ж знаю, что обработка клёвая. для себя писал. у меня ещё конструктор запросов есть. вот это реально бомба
jsmith82 хотел это в одном виде выдать. не вышло. думаю, сначала консоль, а потом уже конструктор
хотел это в одном виде выдать. не вышло. думаю, сначала консоль, а потом уже конструктор
https://infostart.ru/public/1701053/
Нормально. 3 скачки. 3 плюса. Правда, я конструктов запросов пока не хочу заливать
объектная схема запроса. допишу - залью. вернее, добавлю в свою консоль запросов
менелджеры таблиц из отладчика, как?
да там спокойно отладка. из расширения сохраняешь
хотел на клиенте, но не смог. с сервака только. 1с клиент-сервер. вообще запросы чотко сохраняешь. и все ТЗ и ВТ
я сейчас только этой консолью и пользуюсь. написал чисто для себя, но решил залить. вообще удобная и клёвая
а поможет ли твоя консоль найти телочку?
NewTesla отвечай!
ага, ещё смотреть в глаза напиши
не знаю. отношения с женщинами это другое, а работа и творчество своё. просто постоянно что-то пытаешься сделать. и статьи пишешь всякие, и всякие обработки, и просто хочешь что-то сделать
работу же нельзя же смешивать с жизняшкой. работа это NDA сплошные. у меня вообще коммерческие разработки. как я их залить могу. а такие вещи писал
написал одно расширение крутое печати. из БСП, чтобы офисом управлять. и доки всякие делать. но это коммерческая разработка. залить не могу
а так на инфостарте есть всякие поделки
Яндекс.Маршрутизацию написал. Сейчас пишу Яндекс.Еду. даже модуль криптографии сделал, чтобы выдавать токены. Сервер Oauth2.0
Обычно клиент везде, а тут надо сервер делать. Ну сервер вообще другое. Но токен я сам сделал. JWT. А какой ещё
правда, Яндекс та ещё фирма. с ними общаться сложно. набирают что ли гавриков или гаврошей всяких. с той же маршрутизацией пришлось мучаться. там чо только не делаешь. и с Едой тоже
[...] Смитти, если б ты видел женскую вагину
емаее какая науй водка, [...] ыб день и ночь
и изобретал ы не консоли а средства для увеличения члена
Смитти изобрел консоль
баб у Смитти было ноль
даже курочки ему не давали
когда его деревню приглашали
Смитти сними телочку я вот снниму
Тока за болезни всякие боюст
jsmith82 Васич, давай, подключайся, есть прикольные задачки!)
jsmith82 Город призывает ново героя, пьяного мастера на выручку
Ребят, это консоль только за СтартМани, да?
jsmith82 объектная схема запроса. допишу - залью. вернее, добавлю в свою консоль запросов
Полтора года заняло это расширение. Особенно конструктор. Но я конечно периодами им занимался, не всё время.
jsmith82 Но я конечно периодами им занимался, не всё время.
:) понимаем
(0) а че не на гитхабе?