Консоль запросов со встроенным Конструктором запросов для 1с8.3 (8.2) своими руками

Публикация № 719293 21.12.17

Разработка - Инструментарий разработчика

Обработка Консоль запрос управляемые обычные конструктор кодинг

Мы можем сами создать свою консоль запросов - именно такую, которая подходит для наших нужд. Кроме того, создав собственную Консоль запросов, Вы не только получаете удобный для себя инструмент, а также получаете навык программирования в среде 1с8, что очень полезно будет начинающим программистам 1С.

Итак, начинаем с простого: в конфигураторе создайте Новую обработку,назовите КонсольЗапросов или КонструкторЗапросов,как Вам больше нравится.

Далее на вкладке обработки "Данные" - добавляем новые реквизиты:1)ТекстЗапроса, тип=строка неограниченной величины; 2)ТаблицаЗапроса, тип ТабличныйДокумент. см.рис.

 

Сразу можем добавить в "Данных" табличку для будущих Параметров, которые нам необходимы, чтобы в своей Консоли у нас выполнялся не самый примитивный запрос, а с параметрами и ссылками,например, мы для своей работы будем создавать запрос к периодическим регистрам, а здесь без указания Параметра=&Дата никуда.

Чтобы создать нашу табличку Параметров, на вкладке "Данные" в ее "Табличной части" добавим новую таблицу,назовем ее ПараметрыЗапроса, здесь же добавим колонки этой таблицы:1)ИмяПараметра,тип строка=25символов; ЗначениеПараметра, здесь составной тип данных см.рис:

Поэтому как показано на картинке - выбираем составной тип для колонки ЗначениеПараметра:в открывшемся меню типов ставим галочку "Составной тип", выбираем число,строка (20символов укажите),дата,булево, и самую нижнюю галочку ставим - ЛюбаяСсылка - она означает что далее, при указании Параметров нашего запроса, мы можем ссылаться на любой объект нашей конфигурации,например,справочники или документы.

Теперь нужно создать форму нашей будущей Консоли запросов. В обработке перейдем на вкладку "Формы" и добавим новую.Входим в эту форму и здесь уже неограниченное поле для творчества - Вы можете расположить созданных только что два реквизита и табличку с параметрами как Вам больше нравится! Для этого Вы можете использовать стандартные элементы формы как Группа или Страница со страницами (если Вам больше нравится переворачивающиеся страницы.

Главное здесь одно: перетащив реквизит "ТекстЗначения" в левое поле редактирования формы - обязательно в его свойствах установите "Вид"=Поле текстового документа.см.рис:

 

В свойствах реквизита "ТаблицаЗапроса" по желанию можете указать - "ОтображатьСетку"и"ОтображатьЗаголовки".

Далее в правом окне редактирования формы переходим на вкладку "Команды" и добавляем новую кнопку,при нажатии на которую наша Консоль выполнить определенное действие. Создадим Кнопку "КонструкторЗапросов", по собственному желанию Вы можете на кнопку добавить пиктограммку, главное - это вынесите саму кнопку в левое окно редактирования формы - чтобы мы смогли ее увидеть.Потом в правом окне редактирования формы нажимаем правый клик мыши на нашу кнопку и выбираем свойства - в свойствах нажимаем на пункт "Действие",появится модальное окно с вопросом - где именно будет исполняться наш программный код, который мы назначим кнопке - выбирайте "На клиенте".

Откроется МодульФормы с уже готовой пустой процедурой "Процедура КонструкторЗапроса(Команда)". Внутри данной процедуры мы и опишем вызов стандартного Конструктора запросов 1с8. Это очень легко: Конструктор=Новый КонструкторЗапроса; Но здесь есть подводные камни - встроенный в платформу КонстукторЗапросов работает в пользовательском режиме ТОЛЬКО под толстым клиентом! Поэтому мы вставим условие инструкции препроцессора #Если, а вот здесь Вы сами решайте, исходя из Вашей платформы, или у Вас обычные формы,тогда выбирайте "ТолстыйКлиентОбычноеПриложение" или у Вас платформа на управляемых формах, тогда "ТолстыйКлиентУправляемоеПриложение".см.рис.

 

Теперь осталось добавить в данную процедуру условие на запись текста запроса, который сформирует нам Конструктор запросов в наш реквизит формы "ТектЗапроса":

 		Если Конструктор.ОткрытьМодально()=Истина Тогда
			Объект.ТекстЗапроса=Конструктор.Текст;
		КонецЕсли; 

 

Но мы можем что-то вручную поменять в тексте запроса (в пользовательском режиме - в окне реквизита "ТекстЗапроса"), чтобы наши изменения попали в КонструкторЗапросов при его новом вызове - добавим простое условие здесь же:

        Если не ПустаяСтрока(Объект.ТекстЗапроса) Тогда
            Конструктор.Текст=Объект.ТекстЗапроса;
        КонецЕсли;


Все, мы подключили встроенный в платформу 1с8 КонструкторЗапросов, давайте посмотрим на свои труды. Для этого запустите 1С:Предприятие в режиме толстого клиента одним из указанных способов:1)гл.меню Конфигуратора - Отладка - НачалоОтладки - ТолстыйКлиент; 2) или если у Вас вынесены данные клавиши на панель управления в конфигураторе - просто нажмите кнопку с желтым кружком с толстой точкой см.рис.:

Запускается пользовательский режим 1сПредприятие8, находим нашу обработку, запускаем ее, жмем на нашу кнопку "КонструкторЗапросов" и видим, как открывается встроенный в платформу конструктор. см рис.

 

Итак, КонструкторЗапросов у нас запускается, можно уже в нем начинать складывать наш будущий запрос, но нам же интересно увидеть, как отработается созданный нами запрос! А для этого нам нужно создать в конфигураторе в редактировании формы нашей консоли еще одну кнопку, назовем ее "ВыполнитьЗапрос". Нажимаем в свойствах кнопки "ВыполнитьЗапрос" на "Действие", вновь выпадает меню, в котором нас спрашивают - где будет отрабатываться наш программный код, в данном случае выбираем "И на клиенте и на сервере", вновь попадаем в МодульФормы.

В процедуре ВыполнитьЗапрос(), которая у нас на клиенте, запишим условие если пользователь не ввел текст запроса,а просит его выполнить:

    Если ПустаяСтрока(Объект.ТекстЗапроса) Тогда
        сообщить("Введите текст запроса!");
    КонецЕсли; 


Система нам уже автоматически сформировала ссылку на процедуру ВыполнитьЗапросНаСервере(); - вот и хорошо, переходим в эту процедуру, которая исполняется на сервере и напишем здесь код исполнения нашего введенного запроса.

Здесь есть варианты: Вы можете самостоятельно писать все выражения, связанные с построением запросов,т.е. вручную, но есть еще проще вариант - внутри процедуры нажмите правую клавишу мыши и в выпадающем меню выберите пункт "Конструктор запросов с обработкой результатов см.рис.":

Если Вы нажали на пункт Конструктор запросов с обработкой результатов", то выпадет модальное окно "Не найден текст запроса.Создать новый?",нажимайте да.Откроется встроенный конструктор запроса, в котором на его первой вкладке "Обработка результата" - выбираем пункт первый "Обход результата". Все, больше нам от этого конструктора ничего не нужно, нажимаем на кнопку "Ок" - выпадет модальное окно "В запросе не выбрано ни одного поля, жмем "Ок".

После этого внутри нашей процедуры ВыполнитьЗапросНаСервере() появится вот такая готовая заготовочка:

 

Перейдем к построенному конструктором выражению:

    Запрос.Текст = 
        "";


Сотрем кавычки и запишем здесь ссылку на наш текст запроса, который мы в пользовательском режиме создавали, наш текст хранится в реквизите формы "ТекстЗапроса", значит на него и будем ссылаться:

Запрос.Текст =Объект.ТекстЗапроса;

Вот так все просто, наша кнопка "ВыполнитьЗапрос" на форме обработки уже практически работоспособна, пока что она может обрабатывать только простые запросы без параметров, но главное что работает! Осталось только вывести визуально в реквизит "ТаблицаЗначений" на форме обработки - результаты нашего запроса. Напомню,что наш реквизит "ТаблицаЗначений" имеет тип "Табличный документ", потому что иначе никак мы в пользовательском режиме не увидим наши результаты. Выводом табличных данных пользователю всегда занимается или Табличный документ или Макет, мне бы очень хотелось чтобы можно было вывести данные через таблицу значений - так как она очень простая в работе и привычная, но, к сожалению, таблица значений - это лишь инструмент, который нужен разработчику, выдавать данные на экран с помощью нее нельзя...

Рассмотрим подробней, что такое есть Табличный Документ-это как лист Exel - добраться до записи в конкретную ячейку можно только с помощью Ячеек таблицы, здесь они у нас называются область, но мы сами можем выбрать диапазон этой области в одну конкретную Ячейку:

А чтобы считать строки в нашем табличном документе - нам понадобится еще Свойство Табличного документа - "ВысотаТаблицы".

Итак, разобрались, что такое табличный документ, определили для себя, что нам потребуется в конкретную ячейку данного табличного документа определить данные из нашего запроса. Но подумаем: а что такое "РезультатЗапроса", который конструктор нам так быстро сформировал? Открываем справку - Результат запроса - это таблица, у которой есть соответствующие свойства! см.рис.

 

И если мы сейчас напишем после выражения РезультатЗапроса = Запрос.Выполнить();(созданного конструктором) вот такой простой цикл для Коллекций:

    Для каждого ИмяКолонки Из РезультатЗапроса.Колонки Цикл
             сообщить(ИмяКолонки.Имя);
    КонецЦикла; 

После этого цикла пока что заремарьте все выражения построенные автоматически конструктором. И запустите 1С:Предприятие8  под толстым клиентом.Создайте любой простенький запрос (Можно Конструктором запросов - он у нас уже работает) и нажмите на кнопку "ВыполнитьЗапрос":

 

То Вы увидите внизу окна в сообщения - что в таблице РезультатЗапроса хранятся наименование полей, которые мы только что выбрали, создав простенький запрос.

Теперь выведем эти имена полей наших страданий в Табличный документ:

      Для каждого ИмяКолонки Из РезультатЗапроса.Колонки Цикл
            Ячейка=Объект.ТаблицаЗапроса.Область(1,РезультатЗапроса.Колонки.Индекс(ИмяКолонки)+1);
             Ячейка.Текст=ИмяКолонки.Имя;
      КонецЦикла; 

Чтобы вывести деталировку по данным запроса - разремарим созданные автоматически конструктором выражения и внутрь цикла перебора "ВыборкаДетальныеЗаписи" самого запроса вставим точно такой же цикл,который мы использовали для вывода наименований колонок, только теперь в текст Ячейки нам нужно передать не данные таблицы"РезультатЗапроса", а данные самой Выборки, посмотрим в справке, как можно обратиться к полю Детальной выборки запроса:

Запишем:

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        //в первой строке у нас уже записаны имена колонок таблицы,поэтому данные загружаем ниже первой строки
          НомерСтрокиДок=Объект.ТаблицаЗапроса.ВысотаТаблицы+1;
          
      Для каждого ИмяКолонки Из РезультатЗапроса.Колонки Цикл
            Ячейка=Объект.ТаблицаЗапроса.Область(НомерСтрокиДок,РезультатЗапроса.Колонки.Индекс(ИмяКолонки)+1);
            Ячейка.Текст=ВыборкаДетальныеЗаписи[ИмяКолонки.Имя];
      КонецЦикла; 
    КонецЦикла;

Все, можем проверять, загружаем предприятие под толстым клиентом, вводим простой запрос без параметров, нажимаем на кнопку "ВыполнитьЗапрос" см.рис:

Ура, все работает!!!

Очень удобно, когда при открытии/закрытии нашей Консоли запросов - вновь в поле "ТекстЗапроса" записывается наш текст запроса, с которым мы перед закрытием консоли работали. Для этого просто нужно включить свойство формы = Автосохранение см.рис:

Все, наша консоль работает. Чтобы мы могли писать более сложные запросы с указанием в них параметров - нужно создать еще одну кнопку "НайтиПараметры", так же как и код кнопки "ВыполнитьЗапрос" - код кнопки "НайтиПараметры" будет выполняться на клиенте и на сервере. Далее в серверной процедуре мы точно так же запускаем запрос с переданным в него текстом из окна "ТекстЗапроса", с помощью выражения "Запрос.НайтиПараметры()" находим переданные параметры и просто в цикле вносим их в табличную часть формы "ПараметрыЗапроса". Не забудьте потом из заполненной таблицы параметров передать их в процедуру "ВыполнитьЗапрос".

Можно еще к нашей Консоли добавить пару кнопок, которые будут очищать в пользовательском режиме окно Параметров и окно Текста запроса.

Наша Консоль запросов готова к использованию, желаю успешных творческих решений с помощью такого простого и мощного инструмента, как Консоль запросов!

Данная обработка написана на платформе 1с8.3 (управляемые формы), запускается под толстым клиентом. Так же ее можно написать и на платформе 1с8.2 как под обычными формами, так и под управляемыми.

В загрузке находится образец только что созданной нами Консоли запросов.  

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Апгрейд Консоли Запросов:

1)Теперь наша самодельная Консоль запросов со встроенным Конструктором запросов будет запускаться под любым клиентом: под толстым клиентом обычных и управляемых форм и под тонким и веб клиентом.

п.с.Форма и вид встроенного Конструктора запроса отличается - в зависимости от того под каким клиентом мы запустили нашу Консоль.(лично мне привычней и удобней форма Конструктора запросов под толстым клиентом)

&НаКлиенте
Процедура КонструкторЗапроса(Команда)
	//вызов стандартного Конструктора запроса возможен только под толстым клиентом
	#Если ТолстыйКлиентУправляемоеПриложение или ТолстыйКлиентОбычноеПриложение Тогда
		Конструктор=Новый КонструкторЗапроса;
		Если не ПустаяСтрока(Объект.ТекстЗапроса) Тогда
			Конструктор.Текст=Объект.ТекстЗапроса;
		КонецЕсли;
		Если Конструктор.ОткрытьМодально()=Истина Тогда
			Объект.ТекстЗапроса=Конструктор.Текст;
		КонецЕсли; 
	//		#Иначе
	//	      Сообщить("Вызов Конструктора запросов возможен только под толстым клиентом");
	//		  Возврат;
	//# КонецЕсли
		  
	#Иначе
	        Сообщить("Вы запускаете Конструктор запросов под тонким клиентом - он отличается немного по своей форме и скорости производительности!");
			Конструктор = Новый КонструкторЗапроса();
						
		Если не ПустаяСтрока(Объект.ТекстЗапроса) Тогда
			Конструктор.Текст=Объект.ТекстЗапроса;
		КонецЕсли;
			
			ОповещениеКонструктора = Новый ОписаниеОповещения("ВыполнитьПослеЗакрытияКонструктора", ЭтаФорма);
			Конструктор.Показать(ОповещениеКонструктора);
	# КонецЕсли
	КонецПроцедуры

&НаКлиенте
Процедура ВыполнитьПослеЗакрытияКонструктора(Результат, ПараметрыКонструктора)  Экспорт   //Результат=текст,если Конс-р закрыли по кнопке ок
	Объект.ТекстЗапроса = СокрЛП(Результат);   //работает!!!
КонецПроцедуры

2)Добавила возможность в нашу простую Консоль запросов вводить сложные запросы с передаваемой в параметры Временной таблицей!!! Механизм получился очень простой и элегантный - без использования XML-кода, как делают в профессиональных консолях.

Сам код и процедуры по механизму передачи в параметры Временных таблиц Вы сможете посмотреть во втором прикрепленном файле. С чего начала разрабатывать свой вариант Временных таблиц в параметрах можно посмотреть по этой ссылке https://forum.infostart.ru/forum9/topic183700/

Теперь как пользоваться Консолью при сложном запросе, когда в его параметры передана временная таблица. Для примера можете взять код вот этого запроса;

ВЫБРАТЬ
	ВнешниеДанные.Товар,
	ВнешниеДанные.Количество
ПОМЕСТИТЬ ВнешниеДанные
ИЗ
	&ВнешниеДанные КАК ВнешниеДанные
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	ВнешниеДанные.Товар,
	ВнешниеДанные.Количество,
	ЕСТЬNULL(ОстаткиТоваровОстатки.КоличествоОстаток, 0) КАК Поле1,
	ЕСТЬNULL(ОстаткиТоваровОстатки.КоличествоОстаток, 0) - ВнешниеДанные.Количество КАК Осталось
ИЗ
	ВнешниеДанные КАК ВнешниеДанные
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки(
				&Дата,
				Товар В
					(ВЫБРАТЬ
						ВнешниеДанные.Товар
					ИЗ
						ВнешниеДанные КАК ВнешниеДанные)) КАК ОстаткиТоваровОстатки
		ПО ВнешниеДанные.Товар = ОстаткиТоваровОстатки.Товар

По образцу и подобию приведенного выше кода запроса - Вы можете создать свой сложный запрос, с учетом Ваших объектов данных.

Итак, в конструкторе запросов мы создали выше приведенный запрос,закрыв Конструктор - текст запроса попадет в наше поле консоли "ТекстЗапроса",нажимаем на кнопку "НайтиПараметры", видим, что в таблице Параметров появилась строка = "ВнешниеДанные",типЗначения="ТаблицаЗначения",см.рис.

В данной таблице Параметров - вводим параметр Дата,н-р, сегодняшняя дата, потом нажимаем для попытки редактирования на наш параметр временной таблицы "ВнешниеДанные", нажимаем в поле с "ТаблицаЗначений" на три точки - появится выбор типов,жмем строка, наш механизм переворачивает нам страницу на форме, где нам необходимо в ручную ввести эту самую временную таблицу.

Здесь отметьте, что при этом на странице "ВремТаблицы" внизу в поле "Имя временной таблицы в параметрах" - появится имя нашей временной таблицы (оно копируется с таблицы Параметров).

Пока что на странице "ВремТаблицы" мы види только одну пустую таблицу - это таблица Типов нашей будущей временной таблицы.С помощью кнопки "Добавить" - добавим наименование реквизита и типа будущей таблицы. Будьте внимательны - наименование и тип должен соответствовать тому, что мы задали в запросе для &ВнешниеДанные:

Теперь нажимаем кнопку "ОбновитьВременнуюТаблицу" - и у нас здесь же появится вторая таблица - в нее мы уже непосредственно будем набивать через кнопку "Добавить" данные временной таблицы.

Все,можем еще раз перепроверить себя ввели ли мы примитивные данные параметров запроса в таблице параметров на 1-й странице обработки, и жмем кнопку "ВыполнитьЗапрос" - все считает,выбирает соответственно с ограничением по данным, переданых в параметре нашей временной таблицы

п.с.Если Вы сделали ошибку при наборе наименования реквизитов и их типов (в первой таблице) - просто закройте Консоль и откройте ее вновь - временная таблица данных будет стерта - и таблицу Типов вновь можно отредактировать и создать вновь новую таблицу данных.

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Вот и все, мы можем своими руками создать очень мощный рабочий инструмент, кроме того, наша консоль еще очень шустрая по сравнению с профессиональными - а это очень большой плюс для разработчиков! И,конечно, теперь наша консоль работает под любым клиентом! Удачи в Ваших творческих разработках!!!

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Работаю постоянно своей КонсольюЗапросов, и вот попался недавно очень интересный запрос, в котором Временные таблицы находились не в первом пакете запроса,а в следующих - и вот тут моя консолька чуточку захандрила...Пришлось ей делать еще один апгрейд.

Итак, менеждер Временных таблиц в запросе не всегда понимает, что с ним работают)) Поэтому нужно явно задать этот самый менеджер Временных таблиц:

&НаСервере
Процедура ВыполнитьЗапросНаСервере()
	//апгрейд2-явное определение менеджера ВременныхТаблиц!
	МенеджерВТ=Новый МенеджерВременныхТаблиц;
	
	Запрос = Новый Запрос;
	
	//апгрейд2-явное определение менеджера ВременныхТаблиц!
	Запрос.МенеджерВременныхТаблиц = МенеджерВТ;
	
	Запрос.Текст = Объект.ТекстЗапроса;

Данный вариант консоли лежит в третьей загрузке.

Скачать файлы

Наименование Файл Версия Размер
1.Простая Консоль запросов со встроенным КонструкторомЗапросов для 1с8.3(8.2) своими руками:

.epf 9,79Kb
15
.epf 9,79Kb 15 Скачать
2.Функциональная Консоль запросов с Конструктором запросов для 1с8.3 (8.2) под любым клиентом работает + в Параметрах можно задать Врем.Таблицу! :

.epf 12,26Kb
6
.epf 12,26Kb 6 Скачать
3.МногоФункциональная Консоль запросов с Конструктором запросов для 1с8.3 (8.2) под любым клиентом работает + в Параметрах можно задать Врем.Таблицу+МенеджерВременныхТаблиц :

.epf 12,35Kb
52
.epf 12,35Kb 52 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. rpgshnik 3356 22.12.17 04:08 Сейчас в теме
Вряд ли кто-то переплюнет "инструменты разработчика", но за теорию плюс!
tormozit; cleaner_it; jaroslav.h; Liris; DrAku1a; jan-pechka; Morkhe; +7 Ответить
2. DrAku1a 1590 22.12.17 10:37 Сейчас в теме
(1) Инструменты разработчика - только под обычные, неуправляемые формы, если не ошибаюсь...
jan-pechka; +1 Ответить
26. tormozit 6868 05.04.23 22:05 Сейчас в теме
(2) Они сделаны на обычных формах, но работают и в толстом клиенте управляемого приложения (в частности через расширение конфигурации).
3. Matveev_VS 155 22.12.17 10:50 Сейчас в теме
Спасибо, мне интересно
jaroslav.h; jan-pechka; +2 Ответить
4. boln 1038 22.12.17 10:54 Сейчас в теме
Если Конструктор.ОткрытьМодально()=Истина Тогда
Уже не комильфо. В типовых конфигурациях на сегодня по умолчанию запрещено открытие модальных окон и другие НСВ. Будет ошибка. Авторессе - уделить внимание асинхронному программированию :)

А вообще чувства авторессы мне близки. Лет 50 назад, когда я собрал в пионерском радиокружке свой первый детекторный приемник, я испытывал примерно такой же восторг, целый новый мир открылся :)
Светлый ум; Serj1C; DrAku1a; BigB; jan-pechka; +5 Ответить
5. jan-pechka 376 22.12.17 11:02 Сейчас в теме
(4)Если Вы работаете над конфигурацией,то у Вас уже априори есть возможность на момент разработки открыть себе в управляемых формах режим модальности (см.рис,прикрепленный к ответу)

А вообще можно и без всякой консоли запросов писать с тем же успехом сложные запросы с использованием встроенного конструктора запросов прямо внутри конфигуратора - но чтобы посмотреть промежуточный результат - постоянно сохраняться и выходить в пользовательский режим - это утомительно...Консоль ускоряет процесс разработки.
Прикрепленные файлы:
6. boln 1038 22.12.17 11:05 Сейчас в теме
(5)
Если Вы работаете над конфигурацией,то у Вас уже априори есть возможность на момент разработки открыть себе в упоравляемых формах режим модальности (см.рис,прикрепленный к ответу)
Однако для профессиональных разработок это не прокатит. В настоящее время предполагается обязательная возможность работы из веб-клиента, а там никакие НСВ не разрешаются.
cleaner_it; +1 Ответить
7. Boneman 296 22.12.17 11:05 Сейчас в теме
конструктор запроса в тонком клиенте давно уже работает.
Gendelf; JohnConnor; jan-pechka; boln; +4 Ответить
8. boln 1038 22.12.17 11:08 Сейчас в теме
(7)
конструктор запроса в тонком клиенте давно уже работает.
Кстати, верное замечание. Правда, плохонький, тормозит сильно и многие функции не так удобны, как в обычном. Но для веб-клиента сойдет.
9. jan-pechka 376 22.12.17 11:36 Сейчас в теме
(7)В этой статье я попробывала рассказать как соорудить для себя инструмент и при этом так же пройти этап обучения азам языка 1с8...мне вот это дается не просто - справка восьмерки просто убивает напрочь!)) Но когда сильно захотелось хотя бы что-нибудь сделать,например,простенький прототип мультика (https://infostart.ru/public/714992/ ) на 1с8 , то потихонечку начала разбираться в справке 1с8 - там просто все функции в одной большой куче свалены: и под управляемые формы и под обычные....

Если Вы очень хорошо уже разобрались в предоставленной схеме кодирования своей Консоли запросов под толстым клиентом, то вот добавьте тогда,пожалуйста, вот этот код
для управляемых форм вызов Конструктора Запроса под тонким и веб клиентом.

И тогда наша простенькая,но восхитительная Консоль запросов будет вообще на вес золота!)).Спасибо за интерес к теме!

Процедура КонструкторЗапроса(Команда)
	//вызов стандартного Конструктора запроса возможен только под толстым клиентом
	////#Если ТолстыйКлиентУправляемоеПриложение Тогда
	////	Конструктор=Новый КонструкторЗапроса;
	////	Если не ПустаяСтрока(Объект.ТекстЗапроса) Тогда
	////		Конструктор.Текст=Объект.ТекстЗапроса;
	////	КонецЕсли;
	////	Если Конструктор.ОткрытьМодально()=Истина Тогда
	////		Объект.ТекстЗапроса=Конструктор.Текст;
	////	КонецЕсли; 
	////		#Иначе
	////	      Сообщить("Вызов Конструктора запросов возможен только под толстым клиентом");
	////		  Возврат;
	////# КонецЕсли
	
		Конструктор = Новый КонструкторЗапроса();
		
		ПараметрыКонструктора = Новый Структура("Конструктор, ТекстЗапроса", Конструктор,Объект.ТекстЗапроса);
		ОповещениеКонструктора = Новый ОписаниеОповещения("ВыполнитьПослеЗакрытияКонструктора", ЭтаФорма, ПараметрыКонструктора);
		
		Конструктор.Показать(ОповещениеКонструктора);

	КонецПроцедуры
	
	&НаКлиенте
Процедура ВыполнитьПослеЗакрытияКонструктора(Результат, ПараметрыКонструктора)  Экспорт
	ТекстЗапроса = СокрЛП(Результат);
	Если ЗначениеЗаполнено(ТекстЗапроса) Тогда  
		ПараметрыКонструктора.ТекстЗапроса = ТекстЗапроса;
		Модифицированность = Истина;
	Иначе
		Модифицированность = Ложь;
	КонецЕсли;	
КонецПроцедуры
Показать


п.с.единственное, что мне ну как-то не привычно - Конструктор запросов под тонким клиентом как гвоздей наелся - никак его в маленькое скромненькое окошко не свернуть))) Но зато чисто под тонким и веб клиентом работает.
Прикрепленные файлы:
cleaner_it; +1 Ответить
10. boln 1038 22.12.17 11:48 Сейчас в теме
(9) Как сказал бы незабвенный Владимир Ильич, "правильной дорогой идете, товарищ!".
Вы - настойчивая и упорная, со временем достигнете высочайших вершин в 1С, если не надоест, конечно :)
cleaner_it; jan-pechka; +2 Ответить
11. boln 1038 22.12.17 11:51 Сейчас в теме
(9)
справка восьмерки просто убивает напрочь!
Справка - она и есть справка, по ней учиться нельзя (хотя я 20 лет назад учился VBA по справке, там она была как учебник). Справка - это вспомнить то, что забылось из уже постигнутого.

Лучше книжечки почитывать, и безплатных курсов сейчас в сети полно, и вообще инфы всякой ценной. Я вот последнее время только в Интернете и учусь.
jan-pechka; +1 Ответить
13. jan-pechka 376 22.12.17 15:11 Сейчас в теме
(12)Очень хорошие инструменты Вы показали!!!
Но ни каждый разработчик вот так сходу может открыть готовый профессиональный продукт и сказать:"ааа,я знаю теперь как это работает"

на скринах - частичка всего того,что находится в проф.консоли...но уже может закружиться голова!!! Вызывают Конструктор для тонкого кл.стандартно(сравните скрин и код выше), только вот разобраться что да как трудновато...
Прикрепленные файлы:
15. jan-pechka 376 22.12.17 15:31 Сейчас в теме
(12)не крепятся к предыдущему посту еще скрины, приклею их тут, вот посмотрите на скрин - столько работы запутанной на тонны страниц провели профессионалы с Консолью,на которую Вы дали ссылку, а она все равно выдает баг....

Потом в конструкторе запросов, вызванном под тонким или веб клиентом - нет возможности создать и описать поля Временной таблицы...А это ой как надо!!!

И как же чертовски тормозит профессиональная разработка!!!! Даже если возьмете указанный мною чуть выше код для конструктора запросов под тонкий клиент и установите на образец, который мы создавали здесь своими руками,то наша разработка вообще легкая и не тормозит!!!
Прикрепленные файлы:
17. boln 1038 22.12.17 16:28 Сейчас в теме
(12) Вот чем мне не нравится Консоль для УФ от 1С, так это тем, что ее файл списка запросов (q1c) не совместим с файлом до сих пор очень популярной Консоли запросов для обычного режима (sel).

Я, когда делал свою Консоль запросов для УФ в 2010 году, сделал файл списка запросов аналогичным формату sel. Многим нравится.
14. Liris 39 22.12.17 15:19 Сейчас в теме
(0) Прошу прощения, вопрос не по теме статьи.
На всех снимках экрана, которые содержат код, заметил "не типовой" шрифт текстов модулей. Понравился шрифт, напишите его название, пожалуйста.
16. jan-pechka 376 22.12.17 15:33 Сейчас в теме
(14)Georgia, 12
Прикрепленные файлы:
18. boln 1038 22.12.17 16:35 Сейчас в теме
(15)
Потом в конструкторе запросов, вызванном под тонким или веб клиентом - нет возможности создать и описать поля Временной таблицы...А это ой как надо!!!
Почему же нет, есть:
Прикрепленные файлы:
jan-pechka; +1 Ответить
19. jan-pechka 376 23.12.17 21:46 Сейчас в теме
Здесь продолжаю искать варианты как к моей простой Консоли запросов добавить механизм в котором в запрос будут передаваться в виде параметров Временные таблицы.
https://forum.infostart.ru/forum9/topic183700/#message1903300
ivangrant; +1 Ответить
20. JohnConnor 61 16.01.19 13:20 Сейчас в теме
статья интересная, но отформатирована так что "Вырви глаз"
21. ivangrant 10 18.02.19 13:04 Сейчас в теме
Какой запрос написан в процедуре ОчиститьПараметры ?
22. Romario_ 14.08.19 13:38 Сейчас в теме
Статья понравилась, спасибо). Вы молодец, я вот уже около года изучаю разработку в 1С, пока самому не удается что либо написать. Как прийти к тому, чтобы писать самому?))
23. jan-pechka 376 14.08.19 16:10 Сейчас в теме
(22)самостоятельно сложно себя мучать к обучению....а вот если попасть на дикую проблему у клиента,то сразу проявляются все навыки и программирования и бухгалтерии))))....Злой,конечно,такой метод обучения, но оч.быстрый.
24. src 26.10.20 09:48 Сейчас в теме
jan-pechka - поздравляю, вы повторили, то что было уже сделано до вас 10 раз. Подозреваю, вы думаете так, как хорошо, взять готовую разработку, которая уже написана до меня, разобрать её, немного изменить, выдать её за свою и описать так сказать теорию повторив то же самое что и было. За старания плюс...
25. Светлый ум 281 27.03.23 07:56 Сейчас в теме
(24) Все начинаю с копирования - прежде чем начать создавать свое
А хейтить умничая все - будь здоров))
jan-pechka; +1 Ответить
Оставьте свое сообщение

См. также

Таблица символов, или что скрывает обычный шрифт

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

Представляю инструмент для просмотра таблицы символов шрифта. Дополнительно в статье рассмотрены: стандарт Unicode, символы и пиктограммы некоторых блоков Unicode, комбинируемые диакритические знаки, суррогатные пары символов. Подробно описаны эмодзи - внешний вид, модификация и конструирование составных эмодзи.

1 стартмани

05.04.2023    1441    Alxby    4    

35

Справочный адресный склад

Инструментарий разработчика Учет ТМЦ Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Абонемент ($m)

Простейшая конфигурация для ведения складского учета на адресном складе - праздничная разработка для начинающих.

1 стартмани

01.04.2023    644    alexey_kurdyukov    8    

7

Пустая форма объекта в расширении

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Создание пустой формы объекта в расширении для добавления элементов формы программно или для изменения процедур формы объекта.

1 стартмани

16.02.2023    1289    Mx00    12    

18

Гонка конфигураторов с помощью экзекутора

Инструментарий разработчика DevOps и автоматизация разработки Механизмы платформы 1С Платформа 1С v8.3 Абонемент ($m)

Выгружать конфигурацию в файлы в последнее время стало супер модно. Контроль версий, Git, CI/CD и вот это вот все. Исходники как тексты сегодня нужны всем. Но возникают вопросы: а каким методом лучше и быстрее выгружать конфигурацию в файлы, а какая версия платформы справляется с этой задачей оперативнее? Моя статья постарается ответить на эти вопросы. Как говорится, заставим попотеть ваши конфигураторы. С помощью 1С Исполнителя 2.0 мы выгрузим конфигурацию ЗУП, используя платформу пяти версий, от 8.3.18 до 8.3.22.

1 стартмани

16.11.2022    3506    infosoft-v    40    

44

[ЕХТ] Фреймворк для Расширений 1С: Обработка событий: описание, примеры и демобаза.

Инструментарий разработчика Платформа 1С v8.3 Абонемент ($m)

В публикации подробно описаны возможности обработки событий, приведены несколько простых примеров и приложена демонстрационная база для изучения возможностей Фреймворка на практике.

21.10.2022    2009    mszsuz    6    

19

Библиотека программного изменения формы (УФ)

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Нам часто приходится дорабатывать различные управляемые формы. Проще внести изменения непосредственно на самой форме, но, для дальнейшего поддержания конфигурации, удобнее вносить все изменения на форме программно. Предлагаю Вам библиотеку для программного изменения управляемых форм, которую можно внедрить в конфигурацию либо совсем бесшовно, либо практически бесшовно.

1 стартмани

07.08.2020    9848    BuriyLesha    20    

152

Запуск фонового задания во внешней обработке без регистрации в справочнике "Дополнительные отчеты и обработки"

Инструментарий разработчика Управляемые формы 1С:Зарплата и Управление Персоналом 3.x Россия Абонемент ($m)

Описал, как показать прогресс выполнения длительной операции во внешней обработке, и при этом не регистрировать обработку в справочнике "ДополнительныеОтчетыИОбработки". Проверял на БСП версии "3.1.2.264".

1 стартмани

09.03.2020    14314    VinnieThePOOH    10    

65

Методика обновления формы объекта данных при изменении объекта

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

В формах объектов данных часто встречаются элементы, косвенно связанные с объектом. Логику обновления этих элементов при изменении объекта обычно вызывают из обработчиков ПриСозданнииНаСервере и ПриОткрытии, забывая про наличие других способов изменения объекта. В статье предложена методика для обычных и управляемых форм, учитывающая все способы.

1 стартмани

09.03.2020    41395    tormozit    17    

87

Вывод сообщений в HTML поле средствами 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Абонемент ($m)

Пример использования вывода большого количества сообщений в поле HTML. С возможностью открывать ссылочные объекты и создавать новые объекты передавая параметры прямо из HTML поля. Протестировано на релизах 8.3.12 и 8.3.15+

2 стартмани

31.01.2020    25928    burni4    16    

66

Таблица значений - синтаксический сахар

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Ещё одна идея добавления "синтаксического сахара" в язык 1С для работы с коллекцией значения: Таблица значений.

1 стартмани

05.01.2020    3282    a45    12    

6

Многопоточная обработка данных на примере перепроведения документов

Инструментарий разработчика Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Абонемент ($m)

Дальнейшее развитие темы фоновой обработки данных - проведение документов в потоках. Настройка параметров и запуск основного процесса (менеджера потоков). Разбивка документов для проведения на не связанные друг с другом наборы и запуск дополнительных фоновых заданий для отдельных потоков. Отслеживание выполнения каждого потока в родительском сеансе.

1 стартмани

17.09.2019    17451    ids79    46    

63

Централизованное управление кластером 1С Предприятия, состоящим из нескольких рабочих серверов, работающих на платформе GNU/Linux

Инструментарий разработчика Платформа 1С v8.3 Абонемент ($m)

При эксплуатации крупных информационных систем, в состав которых могут входить десятки серверов 1С Предприятия, зачастую возникают ситуации, требующие однотипных действий на всех серверах кластера 1С Предприятия или на всех серверах контура. В настоящей статье представлен способ централизованного управления серверами 1С Предприятия, работающими на платформе GNU/Linux. Подобный подход может быть использован и для других задач, возникающих в процессе эксплуатации крупных систем, с целью сокращения как временных затрат специалистов, так и времени простоя системы.

1 стартмани

26.08.2019    5003    Sloth    0    

18

Просто комбо, два в одном, или как напечатать два макета (стандартный и измененный) одной печатной формы

Инструментарий разработчика Платформа 1С v8.3 1С:Бухгалтерия 3.0 Бухгалтерский учет Абонемент ($m)

Алгоритм и расширение (как пример) демонстрируют механизм одновременного использования двух макетов (стандартного и измененного), принадлежащих одной записи регистра «Макеты печатных форм» («ПользовательскиеМакетыПечати») в конфигурации «1С:Бухгалтерия предприятия, редакция 3.0».

1 стартмани

26.06.2019    6137    delta    0    

3

Использование фреймворка "Тестирование 3.0" (https://testingtool.ru) для тестирования веб-приложений

Инструментарий разработчика Платформа 1С v8.3 Абонемент ($m)

Рассматривается использование фреймворка "Тестирование 3.0" (https://testingtool.ru) для тестирования веб-приложений.

1 стартмани

24.12.2018    6129    AlexKo    9    

20

HTTP Сервисы: Путь к своему сервису. Часть 4

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Продолжение статьи «HTTP Сервисы: Путь к своему сервису. Часть 3». В предыдущих частях мы уже о многом поговорили. В этой части поговорим про размер сообщений, о файлах, о порциях и немножко, о регламентах.

1 стартмани

28.09.2018    40277    dsdred    18    

156

Сортировка метаданных с учетом объектов на замке

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Порой одна конфигурация находится на поддержке нескольких поставщиков (со своими префиксами). Зачастую при обновлении отдельных поставок происходит "перемешивание" объектов с различными префиксами. Работать с такой конфигурацией не очень удобно, но есть способ для сортировки метаданных (в том числе объектов на замке), а также быстрого восстановления сортировки, если случайно очередное обновление было выполнено с взятием порядка метаданных из файла (которое устанавливается по умолчанию).

1 стартмани

16.08.2018    5033    Olenevod    1    

12

HTTP Сервисы: Путь к своему сервису. Часть 2

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Абонемент ($m)

Продолжение статьи «HTTP Сервисы: Путь к своему сервису. Часть 1». В этой части будет "Микс" из OData+HTTP-Сервис(Get)+СКД. Наш пример будет работать как в браузере, так и в написанной нами обработке. Работать будем с разными версиями платформ.

1 стартмани

13.08.2018    55810    dsdred    2    

167

Мониторинг журнала регистрации при помощи Powershell

Инструментарий разработчика Платформа 1С v8.3 Абонемент ($m)

Работа с журналом регистрации в формате SQLite внешними средствами на примере мониторинга изменений в конфигурации базы данных.

1 стартмани

12.07.2018    14470    user768334    7    

30

Заполнение документа Word без ComОбъект

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Идея написать публикацию пришла после прочтения очередного рассказа о том, как файл Word заполнялся через COM-объект в клиент-серверном варианте. При этом падал Сервер 1С. Зачем в принципе использовать файлы Word как шаблоны? Ну, допустим, в организации используется некая внутренняя отчетность, выполнения в корпоративном стиле, и переделать ее на привычные табличные документы нет возможности.

1 стартмани

08.07.2018    22611    nbeliaev    39    

110

Работа со схемой запроса

Инструментарий разработчика Платформа 1С v8.3 Запросы Абонемент ($m)

Стандартом взаимодействия с реляционной базой данных стал язык SQL. Приемником SQL в 1С является язык запросов. Язык запросов, также как и SQL, является структурированным. Составляющие структуры запроса отвечают на разные вопросы о том, какие данные требуется получить и какие манипуляции с множествами данных необходимо произвести при получении. В простых случаях текст запроса можно написать вручную, однако в сложных случаях, а также при программном формировании, - лучше воспользоваться объектной моделью запроса и использовать объект "Схема запроса". В статье дается описание объектной модели и особенностей работы с ней, а также приводится решение, упрощающее взаимодействие с объектом "Схема запроса".

1 стартмани

24.04.2018    59227    kalyaka    40    

211

Использование регулярных выражений (RegExp) в Linux

Инструментарий разработчика Платформа 1С v8.3 Абонемент ($m)

Описывается способ использования регулярных выражений (RegExp) в Linux с использованием тех же компонентов, что и в Windows (COM-объекты VBScript.RegExp).

1 стартмани

20.04.2018    10113    vsbronnikov    12    

1

Тестирование: пример создания сценарного UI теста для платформы 1С

Инструментарий разработчика Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Абонемент ($m)

В этой статье мы расскажем, как создать сценарный UI-тест. Опишем последовательность действий и покажем, как это сделать с использованием инструментария. Рассмотрим пример, максимально приближенный к боевому, покажем на примере конфигураций УТ11/ERP проверку бизнес-процесса "Продажа". Вы сможете убедиться, что создание сценарных тестов для платформы 1С на самом деле относительно быстрый и простой процесс.

1 стартмани

17.04.2018    25970    ivanov660    11    

99

Обработка печатной формы WORD клиент-сервер УФ

Инструментарий разработчика Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Это моя первая статья на данном портале, но попытаюсь изложить все понятно и подробно. Долгое время у меня заняло создание такой вот внешней обработки. Есть очень много примеров, как сделать подобное на неуправляемых формах (2.0) и очень мало информации касательно управляемых(3.0), по крайней мере я многого найти не смог в доступе. Создание подобное обработки выглядит вполне несложно, если производить все действия на сервере, как это было с 2.0, но в нашем случае необходимо инициализировать открытие документа на клиенте, чему сильно мешает отсутствие возможности передать макет Active Document с сервера на клиент.

2 стартмани

14.03.2018    32296    LeoKeyn    46    

43

Практика доступа в базу 1С через протокол oData. Чтение данных

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Для чего нужен доступ в базу 1С через REST-интерфейс по протокол oData? Как его организовать? Как не будучи гуру в JavaScript и .NET получить быстрый визуальный доступ к данным базы 1С? Попробую дать ответ на эти вопросы и прокомментирую некоторые нюансы, с которыми я столкнулся.

1 стартмани

11.12.2017    141083    Dementor    74    

395

Полезный код для программистов 1С (часть 1). Управление свойствами элементов формы. Хранение копии данных реквизитов

Инструментарий разработчика Платформа 1С v8.3 Абонемент ($m)

У каждого программиста за время работы накапливается полезный инструментарий, которым он привык пользоваться. Естественно и у меня он тоже имеется. И вот решено было немного поделиться с сообществом. Возможно идеи не новые. Более того, допускаю, что реализованы они не самым оптимальным образом. Но ведь для этого сообщество и существует, чтобы делиться с ним, получая обратную связь.

1 стартмани

24.09.2017    47937    vandalsvq    80    

152

Интеграция сценарного тестирования в процесс разработки

Инструментарий разработчика Управляемые формы Абонемент ($m)

Эта статья является практическим пособием по внедрению тестирования на основе сценариев в процесс разработки программного обеспечения на базе платформы 1С:Предприятие 8.3. Документ отличает прикладная направленность, в нем содержится много кода, подходов и конкретики. Все рассмотренные примеры основаны на использовании бесплатной конфигурации Тестер

1 стартмани

04.07.2017    33062    grumagargler    30    

209

Многопоточность. Универсальный «Менеджер потоков» (фреймворк) с отслеживанием зависимости объектов

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

Восстановление партий, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

26.05.2017    54002    DarkAn    87    

196

Передача параметра из формы документа в форму выбора. 1С: 8.2, обычные формы

Инструментарий разработчика Платформа 1С v8.3 1С:Управление торговлей 10 Абонемент ($m)

Установить принудительный отбор по номенклатуре в форме выбора при добавлении из определенного вида документа. В моем примере ограничение к номенклатуре только из документа Установка цен номенклатуры.

1 стартмани

18.05.2017    9950    Sanek32    6    

1

Hello world на metadata.js

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Про браузерные offline-first приложения можно написать миллионы слов. Сэкономлю своё и ваше время и перейду сразу к делу. В статье не будет рекламы и агитации за новые технологии, не будет критики традиционных или попсовых решений. Рассмотрим по шагам разработку простейшей программы на metadata.js. Постараюсь сделать акцент не на том «как это сделано», а «почему сделано именно так»

1 стартмани

11.08.2016    78842    unpete    209    

268

Создание внешних печатных форм под управляемым приложением с нуля

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

Когда мне пришлось создавать внешние печатные формы под приложения на БСП ("1С: Бухгалтерия предприятия 3.0", "1С: Управление торговлей 11"), я обнаружил, что нет грамотных инструкций. Те, что имелись, использовали так называемые шаблоны: готовые обработки, в которых необходимо выполнять определенные корректировки. Но как создать сам шаблон, конкретных мануалов не было, справочную информацию я нашел на сайте ИТС и, обработав ее, написал статью, где подробно и понятно объясняются все этапы создания внешней печатной формы для управляемого приложения на примере конфигурации "1С: Бухгалтерия предприятия 3.0"

1 стартмани

05.06.2014    371760    signum2009    136    

688

Нормализация структуры данных в рамках технологий 1С 8.x

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Поводом к написанию данной статьи послужил тот факт, что несмотря на то, что мы уже давно живем в 21 веке, тема нормализации отношений БД в публичных источниках до сих пор не раскрыта.

1 стартмани

09.04.2014    69581    Evgen.Ponomarenko    66    

136

Как написать COM-объект для 1С на Visual Studio C# 2008

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Расширяем функционал 1С с помощью разработки подключаемого COM-объекта! Пишем код на Visual C# 2008 для открытия CD-ROM'а, получения списка процессов и использования возможностей системы text-to-speech.

5 стартмани

11.09.2012    87980    RainyAugust22    59    

206

Пример печатной формы "с выбором" без формы выбора

Взаиморасчеты Инструментарий разработчика Платформа 1С v8.3 1С:Бухгалтерия 2.0 Россия Бухгалтерский учет Абонемент ($m)

Пример реализации внешней печатной формы с выбором ответственного лица без формы выбора

1 стартмани

13.06.2012    14213    Dasty    8    

12

Подсветка синтаксиса 1C (в том числе языка запросов) в Notepad++

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Конфигуратор 1С как редактор кода не всегда удовлетворяет потребностям программиста в управлении кода. Я зачастую с завистью вспоминаю другие среды разработки программ, и нередко копировал куски 1С кода в стороннюю программу для каких-либо манипуляций - например, Notepad++. К сожалению, в нём нет встроенной поддержки синтаксиса кода 1С, из-за чего пришлось определять свой. Вот об этом я и расскажу.

1 стартмани

27.03.2012    39405    CratosX    35    

87

Текстовые экспандеры - в помощь программисту 1С

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Каждый человек старается по возможности облегчить себе труд. Программисты не исключение. Каждый день мы сталкиваемся с необходимостью писать однотипные фрагменты программного кода. Для автоматизации этого процесса система 1С:Предприятие позволяет использовать шаблоны текста (как стандартные, так и созданные пользователем). Казалось бы, что еще нужно разработчику? Однако, в некоторых случаях, стандартных средств разработки все-таки бывает недостаточно. Например, разрабатывая правила обмена в конфигурации 1С:Конвертация данных, приходится писать довольно большие тексты, не имея при этом возможности воспользоваться ни автоподстановкой, ни шаблонами. Либо, приходя к очередному клиенту, Вы обнаруживаете, что нужно написать, допустим, самую обычную печатную форму, которую Вы писали тысячу раз, но процесс ее создания может занять продолжительное время. Как раз в этом случае и могут помочь программы для вставки часто используемых выражений – текстовые экспандеры.

1 стартмани

27.07.2011    27628    tomvlad    44    

119