Внешняя обработка в 1С 8.3

Внешние обработки – очень удобный инструмент для компаний, использующих типовые конфигурации на 1С:Предприятие 8.3. Они позволяют не тратить силы и средства на обновления 1С, давая возможность обновлять базы одной кнопкой в режиме простого пользователя. Используя механизм библиотеки стандартных подсистем, можно добавить различные кнопки в документы и справочники, не изменяя типовую конфигурацию. Рассмотрим пример создания и подключения внешней обработки в одной из конфигураций 1С.
Создаем внешнюю обработку в 1С 8.3
Чтобы создать новую внешнюю обработку, используем конфигуратор. Через меню «Файл» выбираем команду создания «Новый…» и определяемся, что мы будем создавать внешнюю обработку. В открывшемся окне задаем имя, и при нажатии «Enter» оно заполняется автоматически. Также это имя вам предложит система в качестве названия файла при сохранении.

Добавим форму обработки, нажав на кнопку с изображением лупы в соответствующем окне. Для примера создадим обработку, показывающую, в каких заказах клиента используется определенная номенклатура. Для этого нам необходимо разместить на форме:
- Реквизит – поле для установки номенклатуры;
- Кнопку, которая выполнит вызов кода.
Добавляем реквизит «Номенклатура» с типом данных «СправочникСсылка.Номенклатура» в соответствующем разделе и кнопку «Показать» в меню «Команды» -> «Команды формы».
Чтобы на форме отразились добавленные данные, их необходимо перетащить в элементы формы, расположенные в левой верхней части. Есть возможность поменять местами элементы с помощью синих стрелок. Чтобы созданная нами кнопка выполняла задуманное, ей нужно назначить процедуру. Через контекстное меню выберем «Действие команды», и на вопрос, где нужен обработчик, ответим: «Создать на клиенте и процедуру на сервере».

&НаКлиенте Процедура Показать(Команда) ПоказатьНаСервере(); КонецПроцедуры &НаСервере Процедура ПоказатьНаСервере() //Вставить содержимое обработчика. КонецПроцедуры
Мы выбрали создание процедуры на сервере, так как хотим в качестве результата получить выборку из базы данных. На клиенте у нас нет такой возможности, поэтому потребуется подключение к серверу, который и обменивается с БД данными. Теперь нам необходимо написать код, который реализует задуманное нами. Будет использоваться запрос и вывод всех документов через функцию «Сообщить()».

&НаСервере Процедура ПоказатьНаСервере() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказКлиентаТовары.Ссылка КАК Ссылка, | ЗаказКлиентаТовары.Ссылка.Представление КАК Представление |ИЗ | Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары |ГДЕ | ЗаказКлиентаТовары.Номенклатура = &Номенклатура"; Запрос.УстановитьПараметр("Номенклатура", Номенклатура); РезультатЗапроса = Запрос.Выполнить(); ВыборкаЗаказКлиента = РезультатЗапроса.Выбрать(); Пока ВыборкаЗаказКлиента.Следующий() Цикл Сообщение = Новый СообщениеПользователю; Сообщение.Текст = ВыборкаЗаказКлиента.Представление; Сообщение.Сообщить(); КонецЦикла; КонецПроцедуры &НаКлиенте Процедура Показать(Команда) ПоказатьНаСервере(); КонецПроцедуры
На текущем этапе мы можем в запущенной базе 1С осуществить открытие внешней обработки как обыкновенного файла, и она уже будет работоспособна. Но если у нас много пользователей, нам придется разослать им всем этот файл, снабдив при этом его инструкцией о том, как его, собственно, открывать в 1С, что крайне неудобно. Чтобы этого избежать, наша обработка должна располагаться внутри одного из разделов 1С. Для этого нам необходимо еще немного ее доработать через конфигуратор, указав определенные настройки.
Чтобы разместить внешнюю обработку в разделе 1С, необходимо ей в модуле объекта прописать процедуру «СведенияОВнешнейОбработке». В основном меню обработки нажмите «Действия» и выберите «Модуль объекта». Здесь необходимо прописать все нужные для 1С настройки, чтобы система поняла, что от нее требуется и что за файл перед ней. На скриншоте изображен код функции «СведенияОВнешнейОбработке».
Функция СведенияОВнешнейОбработке() Экспорт ДанныеДляРег = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.4.4.106"); ДанныеДляРег.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка(); ТабЗнКоманды = Новый ТаблицаЗначений; ТабЗнКоманды.Колонки.Добавить("Идентификатор"); ТабЗнКоманды.Колонки.Добавить("Использование"); ТабЗнКоманды.Колонки.Добавить("Представление"); НовСтрока = ТабЗнКоманды.Добавить(); НовСтрока.Идентификатор = "НоваяВнешняяОбработка"; НовСтрока.Использование = "ОткрытиеФормы"; НовСтрока.Представление = "Новая внешняя обработка"; ДанныеДляРег.Вставить("Команды", ТабЗнКоманды); Возврат ДанныеДляРег; КонецФункции
Подключение внешней обработки в 1С
Перед тем, как подключать внешнюю обработку к типовой конфигурации, необходимо включить использование этого инструмента. В «Администрировании» в подпункте «Печатные формы, отчеты и обработки» устанавливаем флаг напротив нужного нам механизма. Нам становится доступна кнопка перехода к справочнику дополнительных обработок и отчетов.

При переходе к списку создадим новую строчку в нем, и система предложит выбрать файл. Выбираем сделанную нами и сохраненную обработку, и конфигурация 1С самостоятельно заполняет большинство полей. Через кнопку «Выполнить» мы уже можем проверить работоспособность нашей обработки, но это не слишком удобно для остальных пользователей. Чтобы у пользователей появилась наша команда, и они могли сделать вызов, нам необходимо:
- Указать размещение объекта. Нажатием на «Не определено» мы открываем окно разделов и укажем, в каких разделах будет доступна операция;
- Выбрать пользователей, у которых данная команда появится в меню «Дополнительные обработки» выбранных разделов без лишних настроек. Для этого в табличной части нужно выбрать пункт «Быстрый доступ» и добавить в правую половину ответственных пользователей;
- На вкладке «Дополнительная информация» вы можете указать папку, в которой будет находиться загруженная обработка;
- После нажатия клавиши «Записать» в выбранном разделе в меню «Дополнительные обработки» пользователи обнаружат нашу команду и смогут ею воспользоваться.

Если мы хотим внести изменения в нашу обработку, необходимо сначала выгрузить ее из базы. Для этого в справочнике «Дополнительные обработки и отчеты» найдите нужную строчку и воспользуйтесь командой «Выгрузить в файл…». Внесите изменения, сохраните обработку и через клавишу «Загрузить из файла…» найдите измененный файл epf, не меняя параметры. После записи все пользователи увидят внесенные изменения.
Если вы используете не типовую или снятую с поддержки базу 1С, то воспользуйтесь возможностью загрузить обработку через конфигуратор. В дереве объектов в разделе «Обработки» создайте новую обработку и через контекстное меню выберите «Заменить на внешнюю обработку, отчет…». Останется лишь настроить запуск внешней обработки из нужного раздела, включив добавленную обработку в нужную подсистему.

Работа с внешними обработками весьма удобна и позволяет избежать многих конфликтов. Единственный их существенный недостаток – они не обновляются автоматически вместе с конфигурацией. То есть, если разработчики поменяли название документа или справочника в основной конфигурации, нам придется вручную выполнять настройку обработки.
Нажатие кнопки в обработке программно
Вопрос: Как программно из Обработки1 нажать кнопку на форме Обработки2 ?
Или выполнить процедуру из модуля формы Обработки2?
По теме из базы знаний
- Программное добавление кнопок копирования табличных частей во все документы с минимальными изменениями конфигурации (или вообще без изменения)
- [ТАКСИ] Шаблон внешней обработки. и не только
- Обработка по настройке прав доступа пользователей в 1С 8 (ЗУП, КА, УТ, ЕРП, ERP, УНФ, Розница, Управление холдингом)
- Динамическая кнопка VS Комбинация клавиш
- Аппаратно-программный комплекс «Терминал сбора данных для 1С»
- Дата
- Дата
- Рейтинг всех уровней
- Рейтинг 1-го уровня
- Древо развёрнутое
- Древо свернутое
Свернуть все
8. user623969_dusa 16.01.18 19:46 Сейчас в теме
(1) как в 1 описано может и будет нажиматься из формы только это форма будет обработки объекта созданного локально а не формы запущенной где-то.. то есть смысла нажимать кнопки в пользовательских формах нет да и не надо это практически
2. пользователь 07.12.10 13:26
Выполнить можно любую функцию и процедуру извне, если объявить ее как экспортную
Функция Выполнить() Экспорт . КонецФункции;
Программно такие функции вызываются обычно:
ФормаВыгрузки=глТорговоеОборудование.ПолучитьФорму("ЗагрузкаОборудования", ЭтаФорма); ФормаВыгрузки.РежимЗагрузки=1; ФормаВыгрузки.ОбъектЗагрузки=ВыбГруппаТО; ФормаВыгрузки.Выполнить();
Можно так же программно «нажать на кнопку», но так же процедура события кнопки должна быть экспортной:
Форма_1 имеет кнопку «Выполнить» и задан обработчик кВыполнитьНажатие, добавляем Экспорт к процедуре:
Процедура кВыполнитьНажатие(Элемент) Экспорт . КонецПроцедуры
Из Формы_2 выполняем обработчик кнопки «Выполнить в Форме_1:
Форма_1 = ЭтотОбъект.ПолучитьФорму("Форма_1"); ВрмЭлемент = Форма_1.ЭлементыФормы.кВыполнить; ВрмДействие = ВрмЭлемент.ПолучитьДействие("Нажатие"); Выполнить("Форма_1." + Строка(ВрмДействие) + "(ВрмЭлемент"));
Михаська; user591389_aska_rabota; user859511; user705522_constantin_h; корум; Tiger86; RodinMax; + 7 – Ответить
4. Allexe8.1 10.06.14 17:04 Сейчас в теме
(2) bomba, еще вариант — через обработку оповещения.
3. tarasenkov 340 10.06.14 13:12 Сейчас в теме
// Программное нажатие на кнопку (обычную или на командной панели) на *чужой* форме с вызовом связанного события // через переопределение действия формы ПриПовторномОткрытии // увы, без передачи элемента кнопки в качестве параметра // для режима запуска "обычное приложение" Процедура ИнтерактивноНажатьКнопку(Кнопка, ФормаКнопки) Экспорт // Удостоверимся что есть права на нажатие // Кнопка стрОшибка = ""; Попытка Если Кнопка.Видимость = Ложь Тогда стрОшибка = стрОшибка + ", Невидима"; КонецЕсли; Исключение КонецПопытки; Попытка Если Кнопка.Доступность = Ложь Тогда стрОшибка = стрОшибка + ", Недоступна"; КонецЕсли; Исключение КонецПопытки; Если стрОшибка <> "" Тогда стрОшибка = Сред(стрОшибка, 3)+" кнопка, которую требуется нажать"; ВызватьИсключение(стрОшибка); КонецЕсли; Если ТипЗнч(Кнопка) = Тип("КнопкаКоманднойПанели") Тогда Действие = Кнопка.Действие; ИначеЕсли ТипЗнч(Кнопка) = Тип("Кнопка") Тогда Действие = Кнопка.ПолучитьДействие("Нажатие"); КонецЕсли; буфДействие = ФормаКнопки.ПолучитьДействие("ПриПовторномОткрытии"); ФормаКнопки.УстановитьДействие("ПриПовторномОткрытии", Действие); Попытка // собственно вызов нажатия кнопки ФормаКнопки.Открыть(); ФормаКнопки.УстановитьДействие("ПриПовторномОткрытии", буфДействие); Исключение ФормаКнопки.УстановитьДействие("ПриПовторномОткрытии", буфДействие); ВызватьИсключение; КонецПопытки; КонецПроцедуры
Пример вызова.
*Подразумевается что форма, на которой расположена кнопка должна быть открытой.
ИнтерактивноНажатьКнопку(ФормаКнопки.ЭлементыФормы.КнопкаОК, ФормаКнопки); ИнтерактивноНажатьКнопку(ФормаКнопки.ЭлементыФормы.КоманднаяПанель1.Кнопки.ОК, ФормаКнопки);
DesertPunk; user591389_aska_rabota; user705522_constantin_h; корум; Neco; yudakov; perena; adva; vladir; + 9 – Ответить
Как программно перезапустить обработку 1С

В работе с программой 1С неизбежно возникают ситуации, когда необходимо перезапустить обработку. Это может понадобиться, например, при внесении изменений в код обработки или при обновлении версии 1С. В данной статье мы рассмотрим несколько простых и эффективных способов, как программно перезапустить обработку в 1С.
Один из самых простых способов перезапустить обработку – использовать метод «ЗавершитьРаботу» в коде обработки. Этот метод позволяет остановить выполнение обработки и перезапустить ее. Для использования этого метода необходимо внести изменения в код обработки и добавить вызов метода «ЗавершитьРаботу» в нужное место. Например, можно добавить условие, по которому обработка будет завершаться, и при выполнении этого условия будет вызываться метод «ЗавершитьРаботу».
Еще одним способом перезапустить обработку является использование встроенной функции «ВыполнитьОбработку» с параметром «Перезапустить». Это позволяет вызвать обработку еще раз и перезапустить ее без необходимости изменения кода обработки. Для использования этой функции необходимо вызвать ее в нужном месте и передать в качестве параметра имя обрабатываемой обработки и параметр «Перезапустить».
Как перезапустить обработку 1С: простые и эффективные способы
В процессе работы с программой 1С, возникают ситуации, когда необходимо перезапустить обработку. Это может быть необходимо, например, в случае если обработка зависла или не отвечает. Существует несколько простых и эффективных способов перезапустить обработку в 1С.
Способ 1: Использование команды «Завершить»
В большинстве случаев, можно перезапустить обработку просто нажав на кнопку «Завершить» в окне выполнения обработки. Обычно эта кнопка находится в правом верхнем углу окна. При этом, обработка завершится и будет возможность запустить ее заново.
Способ 2: Остановка сеанса 1С
Если первый способ не сработал, можно попробовать остановить сеанс 1С. Для этого нужно либо нажать комбинацию клавиш Ctrl + Alt + Del и в диспетчере задач завершить процесс 1C:Enterprise, либо воспользоваться командной строкой и командой taskkill /IM 1cv8.exe /F.
После остановки сеанса, все обработки будут принудительно завершены, и будет возможность запустить нужную обработку заново.
Способ 3: Использование SQL-запроса
Если первые два способа не сработали, можно попробовать выполнить SQL-запрос для перезапуска обработки. Для этого нужно открыть инструмент «SQL-запрос» и выполнить следующий запрос: «EXECUTE PROCEDURE _sessionrestart()». После выполнения запроса, обработка будет перезапущена и будет доступна для нового запуска.
Способ 4: Настройка правил работы сеанса
Если ни один из предыдущих способов не сработал, можно попробовать изменить настройки сеанса 1С. В настройках сеанса можно задать правила для обработок, которые зависают или не отвечают. Например, можно задать правило, чтобы при превышении времени выполнения обработка автоматически завершалась и перезапускалась. Для этого нужно открыть обработку в режиме разработки, выбрать пункт меню «Файл» — «Настройка подсистемы» — «Работа с обработками» и указать нужные правила.
В заключение, перезапуск обработки в 1С можно осуществить несколькими простыми и эффективными способами. В большинстве случаев, достаточно использовать команду «Завершить» в окне выполнения обработки. Если это не сработает, можно попробовать остановить сеанс 1С или выполнить SQL-запрос для перезапуска обработки. Если все остальные способы не сработали, можно настроить правила работы сеанса 1С для автоматического перезапуска обработки.
Перезапуск через командную строку
Перезапуск обработки в 1С можно осуществить и через командную строку. Для этого необходимо выполнить следующие шаги:
- Откройте командную строку.
- Перейдите в каталог, где установлена платформа 1С.
- Введите команду rac.exe /F, где /F — параметр, указывающий на необходимость перезапуска обработки.
- Дождитесь завершения работы программы. После этого обработка будет перезапущена.
Таким образом, перезапуск обработки 1С через командную строку является простым и эффективным способом, который может быть использован в различных ситуациях.
Использование специального скрипта
Вместо ручного перезапуска обработки вручную можно использовать специальный скрипт, который будет выполнять эту операцию автоматически. Преимущество такого подхода заключается в том, что не требуется вмешательство пользователя, и обработка может запуститься в заданное время или при определенных условиях.
Для создания скрипта необходимо использовать язык программирования, который поддерживается платформой 1С, например, язык выражений 1С:Enterprise Script (1C:EScript), язык C# или JavaScript.
Пример скрипта на языке 1C:EScript:
Процедура ПерезапуститьОбработку()
ПерезапуститьОбработку = ВстроенныеКоманды1С.НайтиИспользованиеОбъекта(«Обработка1С», «МойОтчет»);
Если ПерезапуститьОбработку <> Неопределено Тогда
отчет = Сообщить(«Запустить обработку?» + Символы.ПС + «Объект: МойОтчет»,
РежимСообщения.Информация + РежимСообщения.Нет + РежимСообщения.Вопрос);
Если отчет = КодВозвратаДиалога.Вопрос Тогда
ПерезапуститьОбработку.Выполнить();
КонецЕсли;
КонецПроцедуры
Пример скрипта на языке C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using V82;
namespace RestartProcessing
class Program
static void Main(string[] args)
var processManager = new COMObject(«ProcessManager.ProcessManager»);
if (processManager != null)
var report = processManager.FindUsages(UsageType.Report, «MyReport»);
if (report != null)
var result = MessageBox.Show(«Restart processing?» + Environment.NewLine + «Object: MyReport»,
«Confirmation», MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
report.Restart();
>
>
>
>
>
>
Как видно из примеров, скрипт выполняет следующие действия:
- Подключается к платформе 1С.
- Находит использование объекта «Обработка1С» с идентификатором «МойОтчет».
- Выводит диалоговое окно с подтверждением перезапуска обработки.
- Если пользователь подтверждает перезапуск, выполняется перезапуск обработки.
Таким образом, скрипт позволяет автоматически перезапускать обработку, что упрощает использование и позволяет сократить время работы оператора.
Управление обработками через панель администратора
Регистрация и управление обработками в 1С:Предприятии можно осуществлять через специальный инструмент — панель администратора. Она позволяет легко настраивать и контролировать процессы выполнения обработок в информационной базе.
Для работы с обработками через панель администратора необходимо выполнить следующие шаги:
- Запустите панель администратора, выбрав соответствующий пункт меню в программе 1С:Предприятие.
- В открывшемся окне панели администратора найдите раздел «Обработки» или «Управление обработками».
- В этом разделе вы увидите список зарегистрированных обработок. Возможно, список будет пустым, если вы еще не добавили ни одну обработку.
- Чтобы добавить новую обработку, нажмите кнопку «Добавить». В появившемся диалоговом окне укажите путь к файлу обработки (.epf или .erf).
- После добавления обработки она отобразится в списке зарегистрированных обработок. Вы можете изменять настройки обработки, например, задать периодичность ее выполнения или указать параметры запуска.
- Для запуска обработки с помощью панели администратора выберите ее в списке и нажмите кнопку «Запустить». Обработка начнет выполняться в соответствии с установленными параметрами и настройками.
Панель администратора позволяет также контролировать выполняющиеся обработки, просматривать их логи и выполнять другие действия — остановка, приостановка, возобновление обработки.
Управление обработками через панель администратора удобно и эффективно. Благодаря этому инструменту можно легко настраивать выполнение обработок и контролировать их состояние в реальном времени.
Принудительное завершение процесса обработки
Иногда возникают ситуации, когда обработка в 1С зависает или работает слишком долго. В таких случаях может потребоваться принудительно остановить процесс обработки. Ниже представлены несколько способов, как это можно сделать.
1. Использование команды «Завершить»
В 1С существует команда «Завершить», которая позволяет остановить текущий процесс обработки. Чтобы воспользоваться этой командой, необходимо выполнить следующие действия:
- Открыть журнал задач в 1С.
- Найти нужный процесс обработки в списке.
- Выделить его и нажать кнопку «Завершить».
Команда «Завершить» остановит процесс обработки, освободив ресурсы системы. Однако, использование этой команды может привести к потере несохраненных данных, поэтому перед ее применением необходимо быть осторожным.
2. Использование команды «Прервать»
В случае, если процесс обработки находится в состоянии ожидания, можно воспользоваться командой «Прервать». Эта команда прерывает дальнейшее выполнение процесса и позволяет освободить ресурсы системы.
- Открыть журнал задач в 1С.
- Найти нужный процесс обработки в списке.
- Выделить его и нажать кнопку «Прервать».
Команда «Прервать» прекращает выполнение текущего этапа обработки и переходит к следующему этапу. Это позволяет сохранить результаты уже выполненных этапов и продолжить обработку с места остановки.
3. Использование команды «Сбросить»
Если процесс обработки завис и не отвечает на команды «Завершить» или «Прервать», можно воспользоваться командой «Сбросить». Эта команда полностью останавливает процесс и переводит его в исходное состояние.
- Открыть журнал задач в 1С.
- Найти нужный процесс обработки в списке.
- Выделить его и нажать кнопку «Сбросить».
Команда «Сбросить» позволяет полностью остановить процесс обработки и удалить все сохраненные данные. Поэтому перед применением этой команды необходимо убедиться, что все необходимые данные были сохранены.
4. Использование программного кода
Если требуется принудительно остановить процесс обработки с помощью программного кода, можно воспользоваться специальными методами 1С. Например, можно использовать метод ПрерываниеОбработки() или метод Остановить().
Пример использования метода ПрерываниеОбработки():
// Получить ссылку на контекст обработки
Контекст = Обработки.Ссылка().СсылкаНаОбъект();
// Прервать выполнение обработки
Контекст.ПрерываниеОбработки();
Пример использования метода Остановить():
// Получить ссылку на контекст обработки
Контекст = Обработки.Ссылка().СсылкаНаОбъект();
// Остановить обработку
ЗавершитьРаботу(Контекст);
Оба этих метода позволяют прервать выполнение процесса обработки и освободить ресурсы системы.
Важно учитывать, что использование принудительного завершения процесса обработки может привести к потере данных или некорректной работе системы, поэтому следует быть внимательным и осторожным при его применении.
Использование специальных инструментов для перезапуска
Помимо привычных способов перезапуска обработки в 1С, существуют специальные инструменты, которые позволяют работать с обработками более эффективно. Рассмотрим некоторые из них:
-
Обработка «Планировщик заданий»
Этот инструмент предоставляет возможность автоматизировать перезапуск обработки по расписанию. Вы можете настроить планировщик заданий таким образом, чтобы обработка перезапускалась автоматически каждый день, каждую неделю или в другое заданное время.
Этот сервис предоставляет гибкую конфигурацию для перезапуска обработки. Вы можете настроить различные условия и правила, при выполнении которых будет автоматически запускаться обработка. К примеру, можно настроить перезапуск при возникновении определенных ошибок или при достижении определенного значения в системе.
Вы можете использовать скрипты и планировщики задач операционной системы для перезапуска обработки. Настройте скрипт, который будет запускаться по расписанию и перезапускать обработку в системе 1С.
Использование этих специальных инструментов позволяет автоматизировать процесс перезапуска обработки и значительно сократить время, затрачиваемое на это действие. От выбора конкретного инструмента зависит его функциональность и настройки, поэтому выбор следует осуществлять исходя из особенностей вашей системы и требований к перезапуску обработки.
Вопрос-ответ
Как можно программно перезапустить обработку в 1С?
Существует несколько способов программно перезапустить обработку в 1С. Один из самых простых способов — использование метода «ЗавершитьРаботу» объекта «ОбработкаДокумента» или «ОбработкаТаблицыЗначений». Этот метод останавливает выполнение обработки, сохраняет текущее состояние и запускает обработку заново.
Я хочу автоматически перезапустить обработку каждый раз, когда происходит определенное событие. Как это можно сделать?
Для автоматического перезапуска обработки при определенных событиях можно использовать триггеры. Необходимо создать триггер на нужное событие, который будет вызывать метод «ЗавершитьРаботу» и затем снова запускать обработку. Таким образом, при каждом происхождении события, обработка будет перезапускаться автоматически.
Можно ли программно перезапустить обработку с определенными параметрами?
Да, можно программно перезапустить обработку с определенными параметрами. Для этого можно использовать метод «ЗавершитьРаботу» с параметром «ПараметрыЗапуска», в котором передать нужные значения параметров. При перезапуске обработки, она будет использовать переданные параметры вместо значений по умолчанию.
Каковы преимущества программного перезапуска обработки в 1С?
Программный перезапуск обработки в 1С имеет несколько преимуществ. Во-первых, он позволяет автоматизировать процесс перезапуска и упростить работу пользователей. Во-вторых, это позволяет сохранить текущее состояние обработки и передать параметры запуска при перезапуске, что может быть полезно при работе с большими объемами данных. Кроме того, программный перезапуск может быть использован для автоматического повторного выполнения обработки при определенных событиях или условиях.
Как программно перезапустить обработку 1с
Как программно перезапустить клиентское приложение? В 8.1 появилась наконец возможность сохранения изменений без разгона пользователей из базы (правда не во всех случаях). На сайте дан как я понимаю концептуальный примерчик (http://v8.1c.ru/beta81/administrationpic2.htm).
Отсюда вопрос: что подразумевалось под функцией ПредложитьПерезагрузкуПрограммыПриОбновленииКонфигурации()?
в 8.1 теперь приложение может перезапускать себя!
(1) это сарказм?
// Процедура перезапуска программы
//
Процедура ПредложитьПерезагрузкуПрограммыПриОбновленииКонфигурации()
// По завершении сеанса необходимо начать новый сеанс
глНеобходимостьПерезапуска = Истина;
// Попробуем перезапустить
ЗавершитьРаботуСистемы(Истина);
// Нет. Пользователь отказался. Ничего не перезапускаем
глНеобходимостьПерезапуска = Ложь;
// перед завершением работы системы
Процедура ПередЗавершениемРаботыСистемы(Отказ)
ЗапрашиватьПотверждение = Не глЗапрашиватьПодтверждениеПриЗакрытии <> Ложь и Пользователи.ПолучитьЗначениеПоУмолчанию(глТекущийПользователь,»ЗапрашиватьПодтверждениеПриЗакрытии») = Истина;
Если ЗапрашиватьПотверждение Тогда
Ответ = Вопрос(«Завершить работу с программой?», РежимДиалогаВопрос.ДаНет);
Отказ = (Ответ = КодВозвратаДиалога.Нет);
КонецЕсли;
Если НЕ Отказ Тогда
// отдельно получаем настройки для которых нужно выполнить обмен при выходе из программы
ОбменДанными.ВыполнитьОбменПриЗавершенииРаботыПрограммы(глОбработкаАвтоОбменДанными);
Если глНеобходимостьПерезапуска Тогда
// Получим командную строку для перезапуска сеанса
КоманднаяСтрока = ОбщегоНазначения.СформироватьСтрокуПерезапускаСеанса();
// Если она не сформирована
Если ПустаяСтрока(КоманднаяСтрока) Тогда
// Завершим работу функции
Возврат;
КонецЕсли;
// запустим сеанс
ЗапуститьПриложение(КоманднаяСтрока);
// Функция формирует текст бат файла обновления конфигурации по структуре данных
//
Функция СформироватьСтрокуПерезапускаСеанса() Экспорт
// Получим строку соединения информационной базы
СтрокаСоединенияИБ = СтрЗаменить(СтрокаСоединенияИнформационнойБазы(), «»»», «»»»»»);
// Сформируем путь к исполняемому файлу 1С:Предприятия
ИмяПрограммыЗапуска = КаталогПрограммы() + ?(Прав(КаталогПрограммы(), 1) = «\», «», «\») + «1cv8.exe»;
// Получим имя текущего пользователя
ИмяПользователя = ИмяПользователя();
// Если есть имя пользователя
Если Не ПустаяСтрока(ИмяПользователя) Тогда
// Попробуем определить возможность аутентификации его средствами операционной системы
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователя);
Если ПользовательИБ = Неопределено Тогда
АутентификацияОС = Ложь;
Иначе
АутентификацияОС = ПользовательИБ.АутентификацияОС;
КонецЕсли;
Пользователь = «/N»»» + ИмяПользователя + «»» » + ?(АутентификацияОС, «/WA+», «/WA-«);
Иначе
Пользователь = «»;
КонецЕсли;
// Сформируем
Возврат «»»» + ИмяПрограммыЗапуска + «»» » +
«ENTERPRISE » +
«/IBConnectionString»»» + СтрокаСоединенияИБ + «»» » +
Пользователь +
«/DisableStartupMessages»;
1С 8.3 Как программно обновить данные управляемой формы объекта или формы списка
Обновить данные списка (динамического списка) на форме:
Элементы.Список.Обновить();
Обновить содержание элементов управления:
ЭтаФорма.ОбновитьОтображениеДанных();
Тэги
- Блог пользователя Nicholas
- Добавить комментарий
Комментарии

денис (не проверено) Thu, 07/01/21
ни одно не помогло

ни одно не помогло

Александр (не проверено) Thu, 18/03/21
Полная фигня


Александр (не проверено) Thu, 18/03/21
Подтверждаю, полная фигня.

Подтверждаю, полная фигня.
![]()
Nicholas Thu, 25/03/21
Зависит от того, что и откуда

Зависит от того, что и откуда вы хотите обновить.

Прямые руки (не проверено) Wed, 28/04/21
Спасибо, помогло


Андрей (не проверено) Fri, 07/05/21
«ЭтаФорма.Прочитать()» всё

«ЭтаФорма.Прочитать()» всё отлично работает

Гость (не проверено) Fri, 21/05/21
ЭтаФорма.Прочитать() :

ЭтаФорма.Прочитать() : Метод объекта не обнаружен (Прочитать)

Вячеслав (не проверено) Tue, 25/05/21
Спасибо! Очень помогло в

Спасибо! Очень помогло в разработке)\

Андрей (не проверено) Tue, 01/06/21
Работает на 8.3.18.1289, УФ,

Работает на 8.3.18.1289, УФ, ERP

Александр (не проверено) Thu, 28/10/21
Отлично — коротко и ясно. Все

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

Алексей (не проверено) Thu, 28/10/21
у меня в УНФ только вот так

у меня в УНФ только вот так заработало, видимо слишком много изменений в разных процедурах обновлялось
//Сохраним изменения
ЭтаФорма.Записать();
ПоказатьЗначение(,Объект.Ссылка);
Запуск внешней обработки в произвольном модуле
Ранее была написана внешняя обработка, позволяющая просматривать количество документов в базе, введенных за текущий день по дате документа. Для чего она была создана не суть важно. Форма обработки достаточно простая, как и реализация:

Программный код обработки Вы можете посмотреть, скачав ее по ссылке в конце статьи. Мы же решим другую задачу. Нам нужно эту обработку запускать из меню «Сервис»:

По нажатию на кнопку обработка запускается с уже введенной текущей датой в поле «Дата проверки».
Запуск
Сначала добавим кнопку «Количество документов за сутки» в интерфейс «Полный» и создадим для нее процедуру-обработчик в общем модуле.

Программный код процедуры-обработчика представлен на следующем листинге:
Процедура ПолныйДействие() Экспорт // Получаем ссылку на элемент справочника "Внешние обработки", //в котором находися искомый файл обработки СсылкаНаОбработку = Справочники.ВнешниеОбработки.НайтиПоНаименованию("Количество введенных документов", Истина); // Записываем двоичные данные файла обработки во временный файл ИмяФайла = ПолучитьИмяВременногоФайла(); ДвоичныеДанные = СсылкаНаОбработку.ХранилищеВнешнейОбработки.Получить(); ДвоичныеДанные.Записать(ИмяФайла); // Получаем форму внешней обработки Форма = ВнешниеОбработки.ПолучитьФорму(ИмяФайла); // Открываем форму для пользователя Форма.Открыть(); КонецПроцедуры
В общих чертах последовательность действия такая:
- Получаем ссылку на элемент справочника «ВнешниеОбработки».
- Извлекаем двоичные данные файла обработки, сохраненные в найденном элементе справочника.
- Записываем полученные двоичные данные во временный файл.
- С помощью созданного файла получаем форму внешней обработки и открываем ее.
Таким образом, мы можем запускать внешние обработки/отчеты из любого модуля конфигурации, где доступен клиентский контекст.
Преимущества
Для чего это может понадобиться? Не легче ли добавлять обработки или очтеты непосредственно в конфигурацию?
Да, легче. Но что, если Вы часто дорабатываете обработку? Каждый раз при ее изменении обновлять информационную базу? Использовать динамическое обновление со всеми вытекающими рисками?
В таких случая как-раз и поможет вынос функционала во внешние обработки/отчеты, которые после модификации мы можем просто заменить в справочнике «Внешние обработки», а пользователям останется лишь перезапустить их. Никакого обновления не потребуется.
Использованная в статье обработка «Подсчет количества документов».
Доработка и изменение конфигураций и написание новых модулей 1С Предприятие для учета специфичных процессов это и есть настройка 1С.
Операции, выполняемые при комиссионной торговле УСН (УПП 8.1)
Запросы, работа с ними, отладка
Разработки

Универсальная замена значений для ЛЮБОЙ конфигурации
Замена объектов на новые или перенос данных по счету

Проверка и групповая корректировка адресов в ЗУП на соответствие КЛАДР
Проверка правильного заполнения адресов 1С ЗиУП 8

Расчет цен товаров для выгрузки на яндекс.маркет 1С УТ10.3, УПП, КА
Автоматизация процесса расчета цен
Еще от автора
- Передача данных между управляемыми формами
- Фиксируем колонку в отчете на СКД
- Создаем бизнес-процесс в несколько шагов
- Если у Вас нет феноменальной памяти
Дополнительные процедуры обработки данных в конфигурации системы 1С: Предприятие

Обновление программы проводится в двух режимах:
1. В режиме работы 1С: Предприятие можно воспользоваться помощником «Поиск и установка обновлений». Он доступен через раздел НСИ и администрирование – Обслуживание – блок Обновление программы – Установка обновлений и исправлений (патчей).
2. В 1С: Предприятие режим Конфигуратор. В первом варианте все этапы проходят в одном запущенном сеансе, в том числе и дополнительная процедура обработки данных. Во втором случае после установки обновлений в режиме Конфигуратора в 1С необходимо осуществить запуск сеанса в режиме работы 1С: Предприятия (под пользователем с установленной ролью Полные права или Администратор системы) для выполнения ряда завершающих действий и подготовки программы к работе новой версии. Эта подготовка проходит в автоматическом режиме и выполняет ряд процедур обновления, которые и называются дополнительными процедурами обработки данных.
Что важно? – Важно в обязательном порядке проконтролировать их окончательное и успешное выполнение функций, иначе в будущем велика вероятность столкнуться с некоторыми проблемами и ошибками учета данных (т.к. по факту не будет выполнен окончательный переход на новую версию 1С, соответственно, не осуществится служебная обработка данных в 1С под новые изменения, и работа в программе — ограничена), а также при последующих системах обновления программы.
Обслуживание
Эти процедуры по обработке данных в 1С в свою очередь делятся на две категории: те, что требуют монопольного режима 1С (т.е. полного отсутствия других пользователей в информационной базе данных); и те, что проводятся в фоновом режиме 1С (параллельно с работой пользователей). Следует помнить, что при выполнении фоновых заданий работа пользователей не всегда имеет возможность осуществляться в полном режиме по логическим соображениям.
Процедуры запуска и отработки фоновых процедур напрямую зависят от того, в каком варианте установлена конфигурация информационной базы 1С (ИБ). Если вариант файловый – все обновления и процедуры перехода на новую версию проходят в один этап с монопольными. Если вариант установки ИБ клиент-серверный режим– отдельно запускаются регламентные и фоновые задания.
Монопольные процедуры — это те процедуры, выполнение которых вы можете наблюдать на индикаторе, оповещающем о ходе обновления на новую версию программы 1С: Предприятие, с предупреждением о том, что «..это может занять длительное время (от одной минуты, до нескольких часов)..».

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

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

Детализировать ход обновления в журнале регистрации
В случае предварительной блокировки регламентных заданий, необходимо их разблокировать. Для клиент-серверной базы управление блокировкой осуществляется через Консоль кластера серверов 1С – установить курсор на имени базы, далее через ПКМ открыть окно свойств ИБ и отключить флажок блокировки.
Для отключения нежелательных регламентных заданий в обработке «Регламентные и фоновые задания» можно выключить все «лишние» регламентные задания, оставив «Отложенное обновление ИБ».
О том, на каком этапе находится процесс программной обработки данных, можно узнать по гиперссылке Результаты обновления и дополнительная обработка данных – Список процедур обработки данных (она же, гиперссылка «Выполнено 461 из 505», например; она же имеет вид «Не все процедуры удалось выполнить (12 из 21)»).

Результаты обновления программы
Частый вопрос: сколько будет длиться обновление? – на этот вопрос невозможно ответить без предварительных вводных данных, т.к. скорость выполнения всех процедур напрямую зависит от размеров ИБ, производительности сервера, где расположена ИБ, в скольких потоках будет проходить обработка данных, какой вообще приоритет можно задать для выполнения дополнительных процедур обработки данных: их обработки или работе пользователей и тп.

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

Результаты обновления программы
В случаях вывода ошибок процедур обработки данных ознакомьтесь с детальной информацией, обратитесь к техническому специалисту.
3. Параметры выполнения дополнительных процедур обработки данных и возможности их настройки
Далее рассмотрим параметры выполнения дополнительных процедур и возможности их настройки.
Первое, на что стоит обратить внимание – установка приоритета. Эта мера полезна для ускорения подготовки больших информационных баз к переходу на следующую версию программы 1С: Предприятие.
В приоритете работы пользователей при обновлении ИБ загружено только одно ядро Центрального Процессора (ЦП), загрузка жесткого диска также низкая. Дополнительные фоновые задания не запускаются, регламентное задание обновляет лишь одну порцию данных за раз и завершается, и, таким образом, меньше нагрузка на работу пользователей в программе и сервер.
Если установлен приоритет обработки данных, можно выполнять обновление сразу в несколько потоков, загружая все ядра ЦП, убирается задержка между запусками регламентного задания по отложенной обработке данных. Такая настройка рекомендуется, когда необходимо быстрее получить доступ к обрабатываемым данным.
В списке можно посмотреть сводную информацию по процедурам обработки данных: — Интервал запуска – промежуток времени, в котором выполнялась процедура обработки данных; — Длительность; — Статус – в колонке отражается прогресс выполнения в процентном отношении.

Дополнительные процедуры обработки данных
В списке Дополнительные процедуры обработки данных возможен отбор процедур по результатам выполнения: — Все процедуры; — Ошибка; — Выполняется; — Выполнено; — Желательно быстрее.
Если процедуры еще выполняются, можно остановить или продолжить выполнение процедуры обработки данных с помощью команд «Запустить» или «Остановить» контекстного меню 1С по правой кнопке мыши или меню Еще. С помощью флажков «В плановом порядке» и «Желательно быстрее» можно установить срочность выполнения процедур обработки данных. Однако не рекомендуется сбивать последовательность, установленную по умолчанию.
Если процедура завершилась с ошибкой, становится доступной команда «Запустить процедуру» для ее повторного выполнения.
По ссылке Техническая информация о результатах обработки данных можно просмотреть события отложенного обновления в журнале регистрации.

Прогресс отложенного обновления
Если по какой-то причине Вы столкнулись с тем, что обработки данных на предыдущую версию не завершены или же дополнительные процедуры обработки данных не выполнены, в таком случае требуется запустить в ручном режиме выполнение отложенных обработчиков: — запуск регламентных операций в 1С: НСИ и Администрирование — Обслуживание — Регламентные и фоновые задания — Отложенное обновление ИБ — или же выполнить код: ОбновлениеИнформационнойБазыСлужебный.ВыполнитьОтложенноеОбновлениеСейчас()
Если вы столкнулись с аварийным завершением сеанса или по какой-то другой причине на форме не активны команды для обработчиков, а обработчик в списке отображается со статусом «Ошибка» без возможности какого-либо изменения, есть возможность доступа к данному списку через Режим – Все функции – Регистры сведений – Обработчики обновления (Как вариант, попробовать установить статус «Не выполнялось» и затем через обновление формы списка процедур, запустить команду повторного выполнения).

Обработчики обновления
В остальных случаях крайне не рекомендую менять самостоятельно запись данного регистра сведений, т.к. их изменение не повлечет за собой должного процесса программной обработки данных для перехода на новые версии 1С.
Специалист компании «Кодерлайн»
Юлия Антонова