Алексей

11
Рейтинг

grEEn_



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

  •   Был(а) на сайте: 27.02.2024

Подписчики 2

Рейтинг 11


Комментарии

DevОбработка демонстрирует цвета системного набота значений WebЦвета#0 21.08.09 17:32
Полезно для работы с пользователями, которых не устраивает "СветлоСерый" интерфейс 1С.
DevСоздание документа по идентификатору#3 21.08.09 16:28
Хорошая вещь.
надо развивать и для справочников.
DevПодсистема "Инструменты разработчика" v7.13.2#218 26.09.08 11:58
(217) Отвязаться от метаданных не получится, т.к. ошибка возникает при использовании виртуальной таблицы, когда в условиях виртуальной таблицы применяется временная таблица.
В примере должна быть виртуальная таблица любого регистра.

RegExp не знаю, поэтому с шаблоном не стал эксперементировать.
Для себя проблему решил переписав функцию РазмаскироватьВременныеТаблицы средствами 1С.

//////////////
Функция РазмаскироватьВременныеТаблицы(ТекстЗапроса, МассивВременныхТаблиц) Экспорт

Для Каждого ПодмененнаяВременнаяТаблица Из МассивВременныхТаблиц Цикл
ПозицияИмени = Найти(ТекстЗапроса,""""+ПодмененнаяВременнаяТаблица+"""");
Если ПозицияИмени <> 0 Тогда

//размаскируем
ДлинаИсходнойСтроки = СтрДлина(ТекстЗапроса);

//Найдем открывающую скобку, чтобы получить начало будущей строки.
СтрокаДляПоискаОткрывающейСкобки = Лев(ТекстЗапроса,ПозицияИмени-1);
ДлинаСтрокиОткрывающейСкобки = СтрДлина(СтрокаДляПоискаОткрывающейСкобки);
КоличествоЗакрывающихСкобок = 0;
ПозицияЗакрывающейСкобки = 0;
Для х=0 По ДлинаСтрокиОткрывающейСкобки Цикл
АнализируемыйСимвол = Сред(СтрокаДляПоискаОткрывающейСкобки,ДлинаСтрокиОткрывающейСкобки-х,1);
Если АнализируемыйСимвол = ")" Тогда
КоличествоЗакрывающихСкобок=КоличествоЗакрывающихСкобок+1;
ИначеЕсли АнализируемыйСимвол = "(" Тогда
Если КоличествоЗакрывающихСкобок=0 Тогда
ПозицияЗакрывающейСкобки = ДлинаСтрокиОткрывающейСкобки-х;
Прервать;
Иначе
КоличествоЗакрывающихСкобок = КоличествоЗакрывающихСкобок-1;
КонецЕсли;
КонецЕсли;
КонецЦикла;
НачалоБудущейСтроки = Лев(ТекстЗапроса,ПозицияЗакрывающейСкобки-1);

//Найдем следующую закрывающую скобку, чтобы получить конец будущей строки
КонецСтрокиДляПоискаЗакрывающейСкобки = Прав(ТекстЗапроса,ДлинаИсходнойСтроки-ПозицияИмени+1);
ПозицияЗакрывающейСкобки = Найти(КонецСтрокиДляПоискаЗакрывающейСкобки,")");
ПозицияЗакрывающейСкобки = ПозицияИмени+ПозицияЗакрывающейСкобки;
ДлиннаКонцаБудущейСтроки = ДлинаИсходнойСтроки - ПозицияЗакрывающейСкобки+1;
КонецБудущейСтроки = Прав(ТекстЗапроса,ДлиннаКонцаБудущейСтроки);

//Собираем строку
ТекстЗапроса = НачалоБудущейСтроки+ПодмененнаяВременнаяТаблица+КонецБудущей­Строки;

КонецЕсли;
КонецЦикла;
Возврат ТекстЗапроса;

КонецФункции // РазмаскироватьВременныеТаблицы()
//////////////


DevПодсистема "Инструменты разработчика" v7.13.2#214 19.09.08 17:00
(212, 213) Ладно, это не так важно...

Активно использую консоль запросов, для отладки запросов в последней ЗУП
Столкнулся с такой проблемой:
Если временная таблица используется в параметрах виртуальной таблицы, то функция РазмаскироватьВременныеТаблицы (версии 1,56 и 1,60) её не размаскирует.
Пример запроса:

ВЫБРАТЬ РАЗРЕШЕННЫЕ // срез работников на начало месяца
&парамНачало КАК Период,
РаботникиОрганизации.Сотрудник КАК Сотрудник,
ИСТИНА КАК Подходит
ИЗ
РегистрСведений.РаботникиОрганизаций.СрезПоследних(
&парамНачало,
Сотрудник В
(ВЫБРАТЬ
ВТСписокРаботников.Сотрудник
ИЗ
ВТСписокРаботников2 КАК ВТСписокРаботников))
КАК РаботникиОрганизации

значение массива ВТ: "ВТСписокРаботников2".
DevПодсистема "Инструменты разработчика" v7.13.2#211 18.09.08 14:36
Очень удобная консоль запросов.
Огромное спасибо!!!

Действительно, было бы лучше если бы это была отдельная обработка...