Перейти к содержимому

Как запустить код в 1с

  • автор:

1С 8.x : Запуск кода в конфигурации из командной строки

Иногда возникает необходимость запуска кода в базе 1С из командной строки. Например, надо выполнять те или иные процедуры по расписанию, но при этом нет желания каждый раз менять конфигурацию, а хочется прописать всё в батнике и запускать через шедулер (at).
Вижу следующие варианты:
1. изменить один раз конфигурацию, чтобы потом можно было передавать через параметр исполняемый код.
2. прописать выполняемый код во внешней обработке и запускать 1С с параметром /execute
3. написать на vba процедуру выполнения заданных операций через COM.

1. Изменить один раз конфигурацию, чтобы потом можно было передавать через параметр исполняемый код.
В таком варианте необходимо прописать следующий код в модуле приложения процедуре ПриНачалеРаботыСистемы():
Код 1C v 8.х
После этого для выполнения кода из командной строки достаточно будет запустить 1С с параметром /cВыполнить=[ИсполняемыйКод]. Например:
Код DOS Batch File

2. Прописать выполняемый код во внешней обработке и запускать 1С с параметром /execute
1С имеет параметр запуска "/Execute", с помощью которого можно запустить внешнюю обработку после старта системы. Чтобы воспользоваться этой возможностью, необходимо создать внешнюю обработку с исполняемым кодом в модуле формы:
Код 1C v 8.х
После этого можно запускать данную обработку из командной строки например так:
Код DOS Batch File

3. Написать на vba процедуру выполнения заданных операций через COM.
Можно все действия прописать в файле VBS и уже его запускать. Пример содержимого файла VBS:
Код VBS

Программное открытие обработок в 1С

В этой статье я разберу особенности программного открытия обработок в 1С. Мы узнаем, как открыть форму обработки, как открыть форму внешней обработки из самой внешней обработки, а также как открыть форму внешней обработки из клиентского режима платформы 1С 8.3.

Открыть форму обработки 1С

Начнем с того, что саму по себе открыть программной обработку нельзя. Можно открыть какую-либо из форм обработки. Для программного открытия управляемой формы обработки необходимо использовать метод ОткрытьФорму.

В первой статье, в которой мы начали знакомиться с обработками в 1С, я создал обработку «Обработка для примера» с формой.

В этой статье я покажу, как открыть программно форму этой обработки из другой обработки «Обработка1». Для этого у Обработки1 я создал управляемую форму и команду формы.

Обработка 1С и форма обработки 1С

В клиентском обработчике команды, напишем код, который будет открывать основную форму обработки.

Какая именно форма обработки будет открыта, можно указать в контекстной подсказке, которая появляется после ввода названия обработки.

Обработка 1С и форма обработки 1С

После, в результате выполнения команды, в отдельном окне будет открываться форма обработки «Обработка для примера».

Обработка 1С и форма обработки 1С

Открыть форму внешней обработки 1С

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

Разберем пример. Пусть, у внешней обработки будут две формы: Основная и Дополнительная.

Открыть форму внешней обработки

На основной форме создадим команду «Открытие дополнительной», при выполнении которой будет открываться дополнительная форма.

Открыть форму внешней обработки

У этой команды будет клиентский обработчик события, со следующим кодом:

Теперь, открыв внешнюю обработку, мы сможем из её основной формы открыть дополнительную.

Открыть форму внешней обработки

Открыть внешнюю обработку 1С

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

Разберем эту задачу. Откроем внешнюю обработку из обработки, которую создали в предыдущей статье, и с которой работали уже в этой — «Обработка 1».

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

Открыть внешнюю обработку 1С

В форме обработки напишем следующий код:

Код работает, начиная с платформы 8.3.15.

В вышеприведенном коде, процедура ОткрытьВнешнююОбработку — обработчик команды «Открыть внешнюю обработку», в этом обработчике используется метод НачатьПолучениеФайлаНаСервер, который выполнен в варианте открытия диалога выбора файла. После выбора файла срабатывает процедура описания оповещения ПослеВыбораФайла. В этой процедуре получается адрес временного хранилища файла (переменная Адрес), по которому находится название внешней обработки (в серверной процедуре ПолучитьИмяВнешнейОбработки), а потом эта внешняя обработка открывается.

После выполнения команды, откроется окно выбора файла внешней обработки.

Открыть внешнюю обработку 1С

Если файл будет выбран, внешняя обработка откроется.

Открыть внешнюю обработку 1С

Статьи про открытие форм:

Статьи по конфигурированию в 1С:

Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Программировать в 1С за 11 шагов

Книга написана понятным и простым языком — для новичка.

  1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  2. Научитесь понимать архитектуру 1С;
  3. Станете писать код на языке 1С;
  4. Освоите основные приемы программирования;
  5. Закрепите полученные знания при помощи задачника.

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

Основы разработки в 1С такси

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


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

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы:

One Reply to “Программное открытие обработок в 1С”

Добрый день. А из документа, можно открыть внешнюю обработку? В окне с подсказкой, нет пункта «Внешняя обработка».

Отладчик

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

Основные возможности отладки

  • отладка приложений, исполняемых на удаленных компьютерах, доступных по протоколу TCP/IP или HTTP,
  • отладка кода, исполняемого рабочим процессом кластера серверов 1С:Предприятия 8; при этом поддерживается сквозной стек вызовов для клиента и сервера, и сквозная пошаговая отладка клиента и сервера;
  • отладка кода, исполняемого в таких видах соединений как внешнее соединение, фоновое задание и WS-соединение?
  • отладка мобильных приложений.

Точки останова

Отладчик позволяет установить на конкретную строку модуля специальный маркер — точку останова, — при достижении которой исполнение программного модуля останавливается и управление передается отладчику. Точки останова могут быть безусловными или с параметрами. При достижении безусловной точки останова исполнение программного модуля останавливается в любом случае:

Отладчик

  • Условия останова по имени метода, расположенного выше по стеку при вызове текущей процедуры (имя метода может быть задано регулярным выражением). Это позволит, например, останавливаться в функции или процедуре только когда она вызвана из конкретного метода.
  • Условие останова по количеству попаданий в строку, в которой установлена точка останова, прежде чем она сработает. Это поможет, в частности, при отладке циклов, когда останов необходим только при заданном проходе цикла.

Отладчик

Отладчик поддерживает возможность отключения точек останова. При этом строка модуля остается отмечена маркером, однако на ход исполнения модуля он никакого влияния не оказывает:

Отладчик

При большом количестве точек останова удобно использовать отдельное окно для работы с точками останова, позволяющее просматривать и редактировать их в едином списке:

Отладчик

Пошаговое выполнение

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

Отладчик

Просмотр выражений

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

Отладчик

Для объектов встроенного языка значения их свойств представляются в виде древовидной структуры. Для значений, являющихся строками, массивами и коллекциями значений также возможен просмотр в отдельном окне:

Отладчик

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

Табло и локальные переменные

Результаты вычислений, которые требуется просматривать на протяжении выполнения некоторой части модуля, можно вывести в отдельное окно — табло, — в котором есть возможность распределить все просматриваемые выражения по четырем страницам:

Отладчик

Для удобного просмотра и изменения локальных переменных, что представляется наиболее частой задачей, существует команда Локальные переменные. Она открывает табло, которое уже автоматически заполнено всеми локальными переменными.

Изменение значений переменных

Значения примитивных типов можно изменить прямо в ячейке Значение.

Отладчик

В этом окне полностью функционирует контекстная подсказка.

Отладчик

Стек вызовов

Отладчик позволяет использовать стек вызовов, который показывает последовательность вызовов процедур и функций, приведшую к строке модуля, которая отлаживается в данный момент:

Отладчик

Двойным щелчком мыши на имени процедуры в стеке вызова можно перейти в соответствующую строку процедуры.

Остановка по ошибке

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

Отладчик

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

Как запустить код в 1с

Войдите как ученик, чтобы получить доступ к материалам школы

Внутренний язык программирования 1С 8.3 для начинающих программистов: отладка в 1С

Автор уроков и преподаватель школы: Владимир Милькин

Как вы знаете, выполнение программы 1С компьютером — это последовательное исполнение команд, написанных программистом. На этом занятии мы научимся останавливать компьютер во время выполнения определенной команды и просматривать значения переменных в этот самый момент. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь.

Этот процесс в 1С называется отладкой и он бывает очень полезен для того, чтобы разобраться в том, как программа работает. Благодаря отладке мы также можем легко находить ошибки, которые допустили на этапе написания кода.

Отладка в 1С

Итак, давайте начнём наш эксперимент.

Напишите в модуле управляемого приложения следующий код:

Код очень простой. Сначала мы определяем две переменные с именами А и Б и значениями 3 и 5 соответственно. Затем складываем эти числа и кладём результат сложения в переменную с именем Сумма. Затем выводим это значение на экран. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Затем удваиваем это значение. И снова выводим.

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

Для этого установим курсор мыши в пятую строчку:

И в главном меню выберем команду «Отладка»-«Точка останова».

Если при этом появилась вот такая ошибка.

. это означает, что код который мы собираемся отлаживать ещё не сохранен в базу данных и нам следует предварительно выполнить пункт меню «Конфигурация-Обновить конфигурацию базы данных»:

После этого конфигуратор даст нам установить точку остановки в нужном месте.

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

Теперь запустим отладку программы. Для этого через главное меню выполним команду «Отладка»-«Начать отладку» (или нажмём F5 на клавиатуре).

И увидим, что компьютер дошёл до пятой строчки и замер в ожидании наших дальнейших действий. Об этом свидетельствует стрелка, появившаяся слева от пятой строки. Это стрелка указывает нам на какой команде находится компьютер в данный момент исполнения программы.

Предположим, что мы хотим увидеть чему равно значение переменной Сумма в данный момент. Для этого выделим мышкой эту переменную:

И выполним через главное меню команду «Отладка»-«Вычислить выражение. «:

Откроется следующее окно, в котором мы видим нашу переменную и её значение в данный момент. Оно действительно равно восьми. Закройте это окно.

Но давайте заставим компьютер выполнить текущую команду и перейти к следующей. Для этого выполним «Отладка»-«Шагнуть через» (или нажмём F10 на клавиатуре):

И мы увидим, что стрелка выполнения переместилась на следующую команду, которая удваивает значение переменной Сумма:

И ещё раз выполним «Отладка»-«Шагнуть через» (а лучше снова нажмём F10 на клавиатуре), чтобы стрелочка оказалась на последней строке:

А теперь снова выделим переменную Сумма и выполним «Отладка»-«Вычислить выражение. «. Как видите значение переменной Сумма теперь стало равно 16:

Чтобы прекратить отладку программы выполним команду «Отладка»-«Завершить».

Когда отладка закончена и мы не хотим, чтобы компьютер останавливался во время выполнения программы — просто выполним «Отладка» — «Убрать все точки останова» и все красные точки из программы исчезнут.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *