ЭКСПЛОРЕР |
01.05.2006 Универсальнй менеджер работы с 1с v8 (Касатка)
Эксплорер-1с является универсальной (работающей на всех конфигурациях) внешней обработкой (.epf) , с открытым кодом выполненным на встроенном языке 1с и свободным для распространения. Менеджер предназначен для построения и исполнения запросов SQL (1с), а также для выполнения кода на встроенном языке 1с v8.
Дополнительные функции Эксплорера - работа с файлами, для сохранения и загрузки текста запросов (кода) 1с. Для передачи результатов запросов предусмотрены процедуры экспорта данных в формат txt, xls и табличный отчет 1с.
|
ПРИМЕРЫ (Запросы) |
10.05.2006 Связаный запрос по ссылке
ВЫБРАТЬ ДоговорыКонтрагентов.Ссылка, ДоговорыКонтрагентов.Представление, Организации.Ссылка КАК Ссылка1, Организации.Представление КАК Представление1 ИЗ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации ПО ДоговорыКонтрагентов.Организация = Организации.Ссылка
|
04.05.2006 Округление
ВЫБРАТЬ ВЫРАЗИТЬ(5/ 3.258 КАК ЧИСЛО(15, 2)) КАК ОкругленноеЗначение
|
03.05.2006 Подсчет количества
ВЫБРАТЬ дог.наименование, КОЛИЧЕСТВО(*) КАК Количество ИЗ Справочник.ДоговорыКонтрагентов КАК дог СГРУППИРОВАТЬ ПО дог.наименование
|
03.05.2006 Запрос подчиненного справочника
ВЫБРАТЬ Контрагенты.ссылка, дог.ссылка ИЗ Справочник.ДоговорыКонтрагентов КАК дог, Справочник.Контрагенты КАК Контрагенты ГДЕ дог.Владелец = Контрагенты.Ссылка
|
ПРИМЕРЫ (Код исполнения) |
21.05.2006 Перечисления
Для каждого ТекП Из Метаданные.Перечисления Цикл Сообщить(Символы.ПС+"Имя: "+ТекП.Имя+"; Синоним: "+ТекП.Синоним+"; Комментарий: "+ТекП.Комментарий+"; Кол-во "+Перечисления[ТекП.Имя].Количество()+Символы.ПС); Для каждого ТекЭ Из Метаданные.Перечисления[ТекП.Имя].ЗначенияПеречисления Цикл Сообщить("Имя: "+ТекЭ.Имя+"; Синоним: "+ТекЭ.Синоним+"; Комментарий: "+ТекЭ.Комментарий); КонецЦикла; КонецЦикла; // Конкретное перечисление: Попытка НайденнаяСсылка = Перечисления["ВидыДоговоровКонтрагентов"]["Спокупателем"]; Сообщить(Символы.ПС+Перечисления["ВидыДоговоровКонтрагентов"]["Спокупателем"]); Если НЕ НайденнаяСсылка = Неопределено Тогда Сообщить("Ссылка - Найдена! "); КонецЕсли; Исключение Сообщить("Ссылка - Найдена! "); КонецПопытки;
|
19.05.2006 Определяем ссылку реквизита
Спр = Справочники["ДоговорыКонтрагентов"]; РефТип=Метаданные["Справочники"]["ДоговорыКонтрагентов"].Реквизиты["ВалютаВзаиморасчетов"].Тип.Типы()[0]; //РТип=Метаданные["Справочники"]["ДоговорыКонтрагентов"].Реквизиты["ВалютаВзаиморасчетов"].Тип; ОбъектСсылка = Новый(РефТип); Сообщить("Полное имя: "+ОбъектСсылка.Метаданные().ПолноеИмя()); Сообщить("Имя: "+ОбъектСсылка.Метаданные().Имя);
|
16.05.2006 Справочник добавление групп и элементов
Спр = Справочники["Контрагенты"]; ИмяГр = "Группа"; НайденнаяСсылка = Спр.НайтиПоНаименованию(ИмяГр, Истина); Если Не НайденнаяСсылка = Спр.ПустаяСсылка() Тогда Если Не НайденнаяСсылка.ЭтоГруппа Тогда Предупреждение("ВНИМАНИЕ! Найден элемент справочника с указанным наименованием!"+ Символы.ПС+"Группа с таким же наименованием создана не будет!"); Возврат; // Здесь сволочь ругается - хотя все правильно! КонецЕсли; КонецЕсли; Родитель = НайденнаяСсылка; Если НайденнаяСсылка = Спр.ПустаяСсылка() Тогда //Если не находим группу по наименованию НоваяГруппа = Спр.СоздатьГруппу(); НоваяГруппа.Наименование = ИмяГр; НоваяГруппа.Записать(); Родитель = НоваяГруппа.Ссылка; КонецЕсли; // Добавляем новый элемент справочника!!! НовыйЭлемент = Спр.СоздатьЭлемент(); НовыйЭлемент.Наименование = "Новый элемент"; НовыйЭлемент.Родитель = Родитель; НовыйЭлемент.Записать();
|
11.05.2006 Перебор реквизитов 2
Для каждого РеквМД Из Метаданные.Справочники.ДоговорыКонтрагентов.Реквизиты Цикл Сообщить(РеквМД.Тип); // Для получения полного наименования необходимо исключить примитивные типы, иначе получимшибку. Попытка ОбъектСсылка = Новый(РеквМД.Тип.Типы()[0]); Сообщить(ОбъектСсылка.Метаданные().ПолноеИмя()); Исключение КонецПопытки; КонецЦикла;
|
|
|
|