1с как работает консоль заданий
Вы наверняка заметили стремительное развитие технологий во всех сферах жизни. Практически каждый человек обладает устройством типа компьютер, планшет, смартфон, мы теперь не мыслим свою жизнь без программных продуктов: электронной почты, яндекс-карт и т.д.
Не отстает от прогресса и бизнес. Невозможно себе представить, чтобы сейчас применялась журнально-ордерная форма учета, если, конечно, это не овощной ларек. Да и ларек ларьку рознь. У каждой компании имеются огромные массивы информации и средства, которые используют эти массивы. Немалую долю среди этих средств занимают программы на платформе 1С. В частности, 1С УПП.
Все эти тенденции явно намекают нам: чтобы стать востребованным и грамотным специалистом, мы должны все лучше и лучше разбираться в цифровых технологиях. Так вот, тем, кто хочет повысить свою эффективность в работе с программными продуктами 1С, будет полезна эта статья. Это могут быть экономисты, финансовые менеджеры, аналитики и в меньшей степени бухгалтеры.
Часто ли Вам приходилось сохранять отчеты 1С в формате Excel, а потом обрабатывать их уже в программном продукте от Microsoft? Уверен, это не редкость. Я и сам поступал таким способом…
Такой подход хоть и имеет право на жизнь, но является совсем не эффективным. И вот почему:
- Сколько-нибудь большой массив данных в Excel работает невыносимо долго.
- Как правило, в ячейках таблиц, выгруженных из 1С, сохраняется уже скомпонованная информация, а ее хочется видеть в различных ячейках, для фильтрации.
Как быстро получить данные в 1С?
Конечно, можно возразить, что есть отчеты СКД, которые дают пользователю место для маневра, но настраивать СКД тоже не простое занятие.
Но есть средство, которое позволяет избежать всех трудностей, и оно совсем не новое, его использует каждый программист. Это обработка, название которой «Консоль запросов 1С». Хранится эта чудесная вещь на дисках ИТС. Различается для разных платформ.
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Эта вещь просто необходима для эффективной работы в УПП. Она просто окрыляет, Вы становитесь властителем информационной базы. Вы не зависите от программистов, способны извлечь практически любую информацию в считанные секунды.
Данные исполненного запроса легко сохранить в табличный документ и далее делать с ним все что угодно. Только данные будут сгруппированы именно так, как Вам удобно.
Но, конечно, для успешной работы Вам нужно кое-что знать о конфигурации 1С. Это не так сложно, как кажется на первый взгляд, приобретите любую книгу, описывающую конфигурацию, или возьмите «Руководство разработчика» из желтой коробки и полистайте. Не пройдет и пары недель, как Вы сможете достаточно хорошо писать запросы.
Как работать с обработкой
Давайте запустим обработку «Консоль запросов 1С» в программном продукте 1C УПП. Открываем нажатием на панели: «Файл – открыть – путь к файлу обработки».
Вам открылась обработка с тремя окнами. В правое верхнее окно введем текст:
ВЫБРАТЬ
Организации.Наименование ,
Организации.ИНН ,
Организации.КПП
ИЗ
Справочник.Организации КАК Организации
И нажмем кнопку выполнить на панели управления. В нижнем окне будет выведен перечень организаций, по которым ведется учет в Вашей базе УПП, их ИНН и КПП. Ну вот, Вы выполнили свой первый запрос – поздравляю.
Другие вкладки позволяют группировать, задавать условия, выводить итоги, и еще много полезнейших вещей.
С помощью консоли запросов можно обратиться к любому элементу конфигурации, задать условия вывода информации, объединить данные из разных источников, провести математические операции с данными. И все это будет выполнено невероятно быстро по сравнению с Excel.
Вот вкратце обзор полезнейшего инструмента в 1С УПП, без которого я не могу себе представить работу в данной программе.
Зачем консоль запросов мне?
Тут Вы можете возмутиться: «Я не программист, я экономист, аналитик, менеджер, зачем мне это?!» Погодите возмущаться. Начнем с того, что, освоив «Консоль запросов 1С» и научившись применять ее в УПП, Вы не станете программистом, и не рассчитывайте. НО.
Мы живем в цифровом мире, в котором умение работать с информацией повышает шансы стать успешнее и богаче!
Консоль заданий для платформы 1С:8.3
- без модальных окон (РежимИспользованияМодальности = НеИспользовать)
- тонкий и веб-клиент
- с редактированием параметров
- не зависает при открытии
- режим совместимости 8.2
- не требует БСП
Обработка оптимизирована под хайлоад, поэтому:
- время последнего запуска рег. задания вычисляется при активации строки
- поиск рег. задания фонового происходит по имени и методу
- по-умолчанию при запуске фоновые отбираются за последний час
- при большом количестве рег. заданий состояние последнего фонового получается по активации строки, а не сразу для всех
Новое в версии 1.0.10:
- добавлена возможность встраивания в справочник "Дополнительные отчеты и обработки" из БСП типовых (спасибо KrapivinAndrey)
- для толстого и тонкого клиента показывается информация о том где запуститься задание: на сервере или на клиенте
- при очистке отбора фоновых фильтр по времени теперь остаётся (для больших баз актуально)
- теперь для заполнения колонок "Выполнялось" и "Состояние" при открытии даётся всего 200 мс, получение всех перенесено на кнопку обновления списка регламентных (результат замера выполения в подсказке заголовка этих колонок)
- подчищены все замечания от новой версии bsl-ls плагина edt
Добавил типовую консоль запросов с конструктором для тонкого клиента, удобно когда лежат вместе:
Обработка по выводу структуры метаданных
Отчет по типам общих модулей и всех их Флагах
Выделяет модули, флаги готорых не соответствуют стандарту ИТС (1) (2)
При разработке общих модулей следует выбирать один из четырех контекстов выполнения кода:
Тип общего модуля | Пример наименования | Вызов сервера | Сервер | Внешнее соединение | Клиент(обычное приложение) | Клиент(управляемое приложение) |
---|---|---|---|---|---|---|
Серверный | ОбщегоНазначения (или ОбщегоНазначенияСервер) | + | + | + | ||
Серверный для вызова с клиента | ОбщегоНазначенияВызовСервера | + | + | |||
Клиентский | ОбщегоНазначенияКлиент (или ОбщегоНазначенияГлобальный) | + | + | |||
Клиент-серверный | ОбщегоНазначенияКлиентСервер | + | + | + | + |
Преобразователь имен таблиц из sql запроса в 1С
- понимает запросы из технологического журнала
- понимает запросы из MS SQL Server Profiler
- расшифровывает ссылки в hex-формате 0xA76E0050569934C711E39DD823175F06
- кеширование ранее расшифрованных ссылок
- УФ и ОФ
Консоль кода для 1С 8.3 (Управляемые и обычные формы)
Для работы внутри 1С требуется версия платформы не ниже 8.3.14.1565
- Подсветка синтаксиса языка 1С
- Подсветка языка запросов
- Автокомплит для глобальных перечислений и функций
- Автокомплит для метаданных (Справочники, Документы и т.п.)
- Автокомплит для объектов метаданных (СправочникСсылка, ДокументОбъект и т.п.)
- Подсказка параметров конструкторов и методов
- Подсказка для типов
- Вставка готовых блоков кода (сниппеты)
- Вызов конструктора запроса и конструктора форматной строки
- Загрузка пользовательских функций и сниппетов
- Выделение строки, при выполнении которой произошла ошибка
- Сворачивание циклов, условий и текстов запросов
- Всплывающие подсказки для глобальных функций, перечислений и классов
- Подсказки через точку для реквизитов типа справочники/документы
- Подсказки через точку для объектов типа ТаблицаЗначений/Массив/РезультатЗапроса/ДвоичныеДанные и др., в том числе для объектов, полученных через методы других объектов.
- Подсказки для источников и полей в режиме запроса
- Для запуска в браузере достаточно открыть index.html из каталога src, либо воспользоваться ссылкой
- Для запуска в 1С можно использовать обработку console.epf, выкладываемую в релизах или сделать свою.
- Редактор используется на сайте Paste1C.
Функции для взаимодействия с 1С:Предприятием
Работа с текстом (кодом)
Функция | Описание |
---|---|
setText | Устанавливает переданный текст в текущую или определенную позицию |
updateText | Полностью заменяет весь текст редактора, игнорируя при этом режим Только просмотр |
setContent | Устанавливает текст редактора. Игнорирует режим Только просмотр и не генерирует событие EVENT_CONTENT_CHANGED |
getText | Возвращает весь текст из окна редактора |
eraseText | Удаляет весь текст редактора |
selectedText | Получает или заменяет выделенный текст |
getSelection | Возвращает selection, аналог GetTextSelectionBounds |
setSelectionByLength | Устанавливает выделение, аналог первой сигнатуры SetTextSelectionBounds |
setSelection | Устанавливает выделение, аналог второй сигнатуры SetTextSelectionBounds |
getLineCount | Возвращает количество строк |
getLineContent | Возвращает содержимое строки по её номеру, аналог GetLine |
setLineContent | Устанавливает содержимое строки по её номеру, аналог ReplaceLine |
getCurrentLineContent | Возвращает содержимое текущей строки |
getCurrentLine | Возвращает номер текущей строки |
getCurrentColumn | Возвращает номер текущей колонки |
getQuery | Определяет текст запроса в текущей позиции и возвращает его вместе с областью текста |
getFormatString | Определяет текст форматной строки в текущей позиции |
findText | Возвращает номер строки, в которой находится заданный текст |
addComment | Добавляет комментарий к текущему блоку кода |
removeComment | Удаляет комментарий у текущего блока |
addWordWrap | Добавляет перенос строки к текущему блоку |
removeWordWrap | Удаляет перенос строки у текущего блока |
insertLine | Вставляет текст в строку с указанным номером |
addLine | Добавляет новую строку с указанным текстом |
getPositionOffset | Возвращает координаты текущей позиции курсора |
jumpToBracket | Переход к парной скобке CTRL+[] |
selectToBracket | Выделяет скобки и текст между ними SHIFT+ALT+B |
formatDocument | Форматирование выделенного фрагмента кода или всего кода ALT+SHIFT+F |
insertSnippet | Вставляет переданный сниппет в текущую позицию редактора |
revealDefinition | Переход к определению переменной, фунции или поля запроса F12 |
peekDefinition | Быстрый просмотр определения переменной, фунции или поля запроса CTRL+F12 |
Управление режимом работы / настройками
Функция | Описание |
---|---|
init | Инициализация редактора с передачей версии платформы |
setLanguageMode | Переключение режимов редактора (встроенный язык, язык запросов и т.п.)) |
setTheme | Установка темы редактора bsl-white , bsl-white-query , bsl-dark , bsl-dark-query |
setReadOnly | Устанавливает/снимает режим Только просмотр |
getReadOnly | Возвращает значение режима Только просмотр |
switchLang | Переключает язык подсказок с английского на русский и обратно |
enableQuickSuggestions | Включает/выключает режим быстрых подсказок |
minimap | Включает/выключает отображение карты кода |
enableModificationEvent* | Включает/выключает генерацию события, возникающего при изменении содержимого редактора (устарела) |
enableSuggestActivationEvent* | Включает/выключает генерацию события, возникающего активации пункта в списке подсказок (устарела) |
enableBeforeShowSuggestEvent* | Включает/выключает генерацию события, возникающего перед появлением списка подсказок (устарела) |
enableSelectSuggestEvent* | Включает/выключает генерацию события, возникающего при выборе пункта из списка подсказок (устарела) |
enableBeforeHoverEvent* | Включает/выключает генерацию события, возникающего перед появлением всплывающей подсказки для слова (устарела) |
enableBeforeSignatureEvent* | Включает/выключает генерацию события, возникающего перед появлением подсказки по вызову процедуры/метода (устарела) |
switchQueryMode* | Переключение между режимом запроса и режимом редактирования кода (устарела) |
switchDCSMode* | Переключение в режим СКД и обратно (устарела) |
switchXMLMode* | Переключение в режим просмотра XML с подсветкой и обратно (устарела) |
compare | Включает/выключает режим сравнения текстов |
nextDiff | Переход с следующему изменению в режиме сравнения |
previousDiff | Переход с предыдущему изменению в режиме сравнения |
getVarsNames | Возвращает имена всех объявленных в коде переменных |
disableContextMenu | Отключает показ контекстного меню |
showLineNumbers | Включает отображение номеров строк в редакторе |
hideLineNumbers | Отключает отображение номеров строк в редакторе |
hideScrollX | Скрывает стандартную горизонтальную полосу прокрутки |
hideScrollY | Скрывает стандартную вертикальную полосу прокрутки |
openSearchWidget | Открывает окно поиска |
closeSearchWidget | Закрывает окно поиска |
nextMatch | Переход к следующему совпадению в поиске |
previousMatch | Переход к предыдущему совпадению в поиске |
setFontSize | Установка размера шрифта |
setFontFamily | Установка семейства шрифтов |
setFontWeight | Установка насыщенности (толщины) шрифта |
setLineHeight | Установка высоты строки |
showStatusBar | Включает отображение строки состояния в нижней части редактора |
hideStatusBar | Отключает отображение строки состояния |
renderWhitespace | Включает/отключает отображение пробелов и табуляций |
hasTextFocus | Возвращает признак активности фокуса |
setOption | Установка опциональных настроек редактора |
getOption | Получение опциональных настроек редактора |
disableKeyBinding | Отключает любое стандартное сочетание клавиш редактора |
enableKeyBinding | Включает обратно сочетание |
saveViewState | Возвращает JSON-строку с текущими настройками (положение курсора и прокрутки, а также свернутые блоки) |
restoreViewState | Восстанавливает настройки. В качестве аргумента принимает JSON-строку, полученну ранее через saveViewState |
setOriginalText | Устанавливает или сбрасывает оригинальный текст, на основании которого строится подсветка изменений |
getOriginalText | Возвращает текст, установленный ранее функцией setOriginalText |
getCurrentLanguageId | Возвращает идентификатор текущего языка ( bsl , bsl_query , dcs_query , xml ) |
isQueryMode | Возвращает true , если редактор находится в режиме редактирования запроса и false в любом другом режиме |
isDCSMode | Возвращает true , если редактор находится в режиме СКД и false в любом другом случае |
Функция | Описание |
---|---|
updateMetadata | Обновляет через JSON структуру метаданных (Справочники/Документы/пр.) |
clearMetadata | Очищает структуру метаданных |
updateSnippets | Обновляет пользовательские сниппеты |
updateCustomFunctions | Обновляет пользовательские функции |
parseCommonModule | Загружает структуру общего модуля |
parseMetadataModule | Загружает структуру модуля менеджера или модуля объекта |
setCustomHovers | Обновляет пользовательские подсказки, показываемые при наведении |
setCustomSignatures | Обновляет пользовательские подсказки по вызову процедуры/метода |
setCustomCodeLenses | Загружает подсказки для Code Lens |
addContextMenuItem | Регистрирует пользовательский пункт контекстного меню и связанное с ним событие |
markError | Индикация ошибки в указанной строке |
triggerSuggestions | Принудительный вызов подсказок |
triggerHovers | Принудительный вызов всплывающей подсказки для текущего слов |
triggerSigHelp | Принудительный вызов подсказки по вызову процедуры/метода |
showCustomSuggestions | Показ пользовательских подсказок |
showPreviousCustomSuggestions | Вывод списка пользовательских подсказок, ранее показанных через showCustomSuggestions |
hideSuggestionsList | Скрывает текущий список подсказок |
hideHoverList | Скрывает активную всплывающую подсказку для слова |
hideSignatureList | Скрывает активную всплывающую подсказку по вызову процедуры/метода |
addBookmark | Создание закладки в строке с указанным номером |
removeBookmark | Удаление закладки из строки с указанным номером |
goNextBookmark | Переход к следующей закладке |
goPreviousBookmark | Переход к предыдущей закладке |
getBookmarks | Возвращает массив с номерами строк, в которых установлены закладки |
removeAllBookmarks | Удаляет все закладки |
setMarkers | Задает маркеры выделения |
getMarkers | Возвращает список установленных маркеров |
goNextMarker | Переход к следующему маркеру |
goPreviousMarker | Переход к предыдущему маркеру |
setActiveSuggestLabel | Устанавливает заголовок активного пункта списка подсказок |
setActiveSuggestDetail | Устанавливает подробное описание активного пункта списка подсказок |
revealLineInCenter | Переход к строке по её номеру и позиционирование по центру экрана |
goToFuncDefinition | Переход к определению процедуры/функции по имени |
События, генерируемые редактором для 1С:Предприятия
Событие | Описание |
---|---|
EVENT_QUERY_CONSTRUCT | При выборе пункта меню "Конструктор запросов". Возвращает текст и позицию запроса |
EVENT_FORMAT_CONSTRUCT | При выборе пункта меню "Конструктор форматной строки". Возвращает текст и позицию фор.строки |
EVENT_CONTENT_CHANGED ] | При любом изменении содержимого редактора (подробнее) |
EVENT_GET_METADATA | Генерируется при отсутствии метаданных. В параметрах передается имя запрашиваемых метаданных (подробнее) |
EVENT_XXX | При выборе пользовательского пункта меню. addContextMenuItem('Мой пункт', 'EVENT_MY') |
EVENT_ON_ACTIVATE_SUGGEST_ROW | При активации пункта в текущем списке подсказок (подробнее) |
EVENT_ON_DETAIL_SUGGEST_ROW | При активации подробного описания пункта в текущем списке подсказок (подробнее) |
EVENT_ON_SELECT_SUGGEST_ROW | При выборе пункта из списка подсказок (подробнее) |
EVENT_BEFORE_SHOW_SUGGEST | Перед появлением списка подсказок (подробнее) |
EVENT_BEFORE_HOVER | Перед появлением всплывающей подсказки для слова (подробнее) |
EVENT_BEFORE_SIGNATURE | Перед появлением всплывающей подсказки по вызову процедуры/метода (подробнее) |
EVENT_ON_LINK_CLICK | При клике по гиперссылке |
EVENT_KEY_BINDING_ХХХ | При нажатии отключенного сочетания клавиш (подробнее) |
EVENT_GET_DEFINITION | При переходе к определению (подробнее) |
Перед началом работы с редактором из 1С Предпрития желательно вызвать функцию инициализации и передать в нее текущую версию платформы. Пример:
Переключение режимов работы
По умолчанию редактор находится в режиме редактирования кода (bsl). Для переключения режимов работы редактора служит функция setLanguageMode Пример:
Все горячие клавиши описаны тут
- По умолчанию редактор не подстраивается под размеры окна. Это не ошибка, решение описано тут и тут
Продукты, использующие консоль:
- 8.3.15.1830
- 8.3.16.1148
- 8.3.17.1386
- 8.3.18.891
- 8.3.20.1549
- На платформах, выпущенных примерно до ноября 2020 года могут не работать горячие клавиши CTRL+SPACE, CTRL+C, CTRL+V и CTRL+Z и т.п.
- В веб-клиенте недоступно любое взаимодействие редактора и 1С. Можно попробовать только набор кода. Иногда для этого в браузере надо предварительно открыть данную ссылку
- В linux пока возможны проблемы с некоторым функционалом. Для сборки под linux необходимо использовать ветку webpack
- Из-за особенностей реализации подсказка через точку для реквизитов ссылочного типа работает только тогда, когда подсказываемый реквизит выбран через Enter
Выражаю благодарность команде 1c-syntax и их проекту для VSCode за подробное описание внутренних конструкций языка в JSON, а также за коллекцию сниппетов.
Наверное, каждому программисту 1С 8.3 рано или поздно приходилось настраивать выполнение определенных заданий по расписанию. Ниже я дам подробное описание данных механизмов, надеюсь, это будет полезной информацией для начинающих программистов 1С. Это очень удобно, ведь не требует действий от человека, регламентное задание настраивается 1 раз и работает по Вашему расписанию.
Как настраиваются регламентные и фоновые задания в 1С 8?
Развернутую инструкцию на примере загрузки курсов валют Вы найдете далее.
Что такое регламентные и фоновые задания в 1С
Механизм регламентных и фоновых заданий работает в клиент-серверном режиме работы (SQL), благодаря функционалу СУБД . Если у вас файловая БД, то задание тоже можно настроить, но немного по другому принципу.
Настройка фоновых заданий в клиент-серверном режиме работы 1С
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Внимание! Не забудьте отключить блокировку выполнения регламентных и фоновых заданий на уровне СУБД!
Сделать это можно в утилите администрирования клиент-серверного варианта либо при создания новой БД:
Настройка регламентных заданий в файловом режиме работы 1С
Двухминутное видео, в котором показано, как настроить регламентное задание в конфигураторе 1С:
Другие статьи по 1С:
Читайте также: