Всем доброго дня.

Добавил внешнюю обработку которая сдвигает дату запрета изменений на 1 день, при выполнении
p.s (т.к конфигурация типовая - нет возможности добавить регламентное задание)

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

Может знает кто в чем может быть дело, куда смотреть и т.д..

Скрины ошибки и код во вложении.
(Процедура "Выполнить команду" - моя, Функция "СведенияОВнешнейОбработке" - взял из интернета)
---
рабочий пример (Урезанный)
---
есть у меня шаблон, может вам поможет

```1c
    //Скоприовать функции и заментиь имена, идентификаторы, и код процедуры ВыполнитьКоманду

    Функция СведенияОВнешнейОбработке() Экспорт

    ИмяОтчета = ЭтотОбъект.Метаданные().Имя;
    Синоним = ЭтотОбъект.Метаданные().Синоним;
    Синоним = ?(ЗначениеЗаполнено(Синоним),Синоним, ИмяОтчета);
    РегистрационныеДанные = Новый Структура;
    РегистрационныеДанные.Вставить("Вид","ДополнительнаяОбработка"); //может быть – ПечатнаяФорма, ЗаполнениеОбъекта (для вн.обработки), ДополнительныйОтчет, СозданиеСвязанныхОбъектов…
    РегистрационныеДанные.Вставить("Наименование", Синоним); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
    РегистрационныеДанные.Вставить("Версия", "1.0");
    РегистрационныеДанные.Вставить("БезопасныйРежим", Ложь);
    РегистрационныеДанные.Вставить("Информация", "Обработка "+Синоним); //так будет выглядеть описание вн.отчета для пользователя

    ТаблицаКоманд = ПолучитьТаблицуКоманд();

    // Добавим команду в таблицу
    ДобавитьКоманду(ТаблицаКоманд, "ЗакрытьЗаказыНаПроизводство", "ЗакрытьЗаказыНаПроизводство" , ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода(), Истина, );
    ДобавитьКоманду(ТаблицаКоманд, "ЗакрытьЭтапыПроизводства", "ЗакрытьЭтапыПроизводства" , ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода(), Истина, );

    // Сохраним таблицу команд в параметры регистрации обработки
    РегистрационныеДанные.Вставить("Команды", ТаблицаКоманд);

    Возврат РегистрационныеДанные;

    КонецФункции

    Функция ПолучитьТаблицуКоманд()

    // Создадим пустую таблицу команд и колонки в ней
    Команды = Новый ТаблицаЗначений;

    // Как будет выглядеть описание печатной формы для пользователя
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));

    // Имя нашего макета, что бы могли отличить вызванную команду в обработке печати
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));

    // Тут задается, как должна вызваться команда обработки
    // Возможные варианты:
    // - ОткрытиеФормы - в этом случае в колонке идентификатор должно быть указано имя формы, которое должна будет открыть система
    // - ВызовКлиентскогоМетода - вызвать клиентскую экспортную процедуру из модуля формы обработки
    // - ВызовСерверногоМетода - вызвать серверную экспортную процедуру из модуля объекта обработки
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));

    // Следующий параметр указывает, необходимо ли показывать оповещение при начале и завершению работы обработки. Не имеет смысла при открытии формы
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));

    // Для печатной формы должен содержать строку ПечатьMXL
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
    Возврат Команды;

    КонецФункции

    Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование = "ОткрытиеФормы", ПоказыватьОповещение = Ложь, Модификатор = "ПечатьMXL")

    // Добавляем команду в таблицу команд по переданному описанию.
    // Параметры и их значения можно посмотреть в функции ПолучитьТаблицуКоманд
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;

    КонецПроцедуры

    Процедура ВыполнитьКоманду(ИдентификаторКоманды) Экспорт

    Если ИдентификаторКоманды = "ЗакрытьЗаказыНаПроизводство" Тогда
    ЗакрытьЗаказыНаПроизводство();
    ИначеЕсли ИдентификаторКоманды = "ЗакрытьЭтапыПроизводства" Тогда
    ЗакрытьЭтапыПроизводства();
    КонецЕсли;

    КонецПроцедуры
```
---
Нормально отрабатывает
---
Разобрался, нужно было установить параметры процедуры "ВыполнитьКоманду"
---
Нормально отрабатывает
---
а версию без разницы какую поставить получается?
---
У Вас там получается выполнить команду без переменных. Может в этом дело?
Ну и да. Ставить версию желательно привыкнуть. Когда начнете работать с разрешениями могут быть сюрпризы.
---
Разобрался, нужно было установить параметры процедуры "ВыполнитьКоманду"
---
В регистрации обработки не указан ни один пользователь, регламент не отрабатывает - укажите пользователя с полными правами.
---
общий модуль в расширение, небольшое изменение типвого общего модуля также в расширении и регл. задание будет работать в конфигурации без снятия с поддержки.
Я в зуп3 так сделал.
---
А что конкретно нужно поменять в типовом общем модуле не помните?
---
не надо ничего менять в типовой, в дополнительной обработке все будет работать
---
тут находил тему, на инфостарте. Сейчас поищу может найду.

(6) конфа остается на поддержке, всё делал через расширение.
---
https://forum.infostart.ru/forum9/topic250062/
---
рабочий пример (Урезанный)
---
И НЕ НАДО В ЦИКЛЕ ДЕЛАТЬ ЗАПИСЬ НАБОРА ЗАПИСЕЙ!!! ВЫНЕСИТЕ ИЗ ЦИКЛА!!!
---
(12)Да, я знаю, спасибо
Просто этот цикл априори будет исполнятся 1 раз, так что ничего страшного)
---
есть у меня шаблон, может вам поможет

```1c
    //Скоприовать функции и заментиь имена, идентификаторы, и код процедуры ВыполнитьКоманду

    Функция СведенияОВнешнейОбработке() Экспорт

    ИмяОтчета = ЭтотОбъект.Метаданные().Имя;
    Синоним = ЭтотОбъект.Метаданные().Синоним;
    Синоним = ?(ЗначениеЗаполнено(Синоним),Синоним, ИмяОтчета);
    РегистрационныеДанные = Новый Структура;
    РегистрационныеДанные.Вставить("Вид","ДополнительнаяОбработка"); //может быть – ПечатнаяФорма, ЗаполнениеОбъекта (для вн.обработки), ДополнительныйОтчет, СозданиеСвязанныхОбъектов…
    РегистрационныеДанные.Вставить("Наименование", Синоним); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
    РегистрационныеДанные.Вставить("Версия", "1.0");
    РегистрационныеДанные.Вставить("БезопасныйРежим", Ложь);
    РегистрационныеДанные.Вставить("Информация", "Обработка "+Синоним); //так будет выглядеть описание вн.отчета для пользователя

    ТаблицаКоманд = ПолучитьТаблицуКоманд();

    // Добавим команду в таблицу
    ДобавитьКоманду(ТаблицаКоманд, "ЗакрытьЗаказыНаПроизводство", "ЗакрытьЗаказыНаПроизводство" , ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода(), Истина, );
    ДобавитьКоманду(ТаблицаКоманд, "ЗакрытьЭтапыПроизводства", "ЗакрытьЭтапыПроизводства" , ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода(), Истина, );

    // Сохраним таблицу команд в параметры регистрации обработки
    РегистрационныеДанные.Вставить("Команды", ТаблицаКоманд);

    Возврат РегистрационныеДанные;

    КонецФункции

    Функция ПолучитьТаблицуКоманд()

    // Создадим пустую таблицу команд и колонки в ней
    Команды = Новый ТаблицаЗначений;

    // Как будет выглядеть описание печатной формы для пользователя
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));

    // Имя нашего макета, что бы могли отличить вызванную команду в обработке печати
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));

    // Тут задается, как должна вызваться команда обработки
    // Возможные варианты:
    // - ОткрытиеФормы - в этом случае в колонке идентификатор должно быть указано имя формы, которое должна будет открыть система
    // - ВызовКлиентскогоМетода - вызвать клиентскую экспортную процедуру из модуля формы обработки
    // - ВызовСерверногоМетода - вызвать серверную экспортную процедуру из модуля объекта обработки
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));

    // Следующий параметр указывает, необходимо ли показывать оповещение при начале и завершению работы обработки. Не имеет смысла при открытии формы
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));

    // Для печатной формы должен содержать строку ПечатьMXL
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
    Возврат Команды;

    КонецФункции

    Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование = "ОткрытиеФормы", ПоказыватьОповещение = Ложь, Модификатор = "ПечатьMXL")

    // Добавляем команду в таблицу команд по переданному описанию.
    // Параметры и их значения можно посмотреть в функции ПолучитьТаблицуКоманд
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;

    КонецПроцедуры

    Процедура ВыполнитьКоманду(ИдентификаторКоманды) Экспорт

    Если ИдентификаторКоманды = "ЗакрытьЗаказыНаПроизводство" Тогда
    ЗакрытьЗаказыНаПроизводство();
    ИначеЕсли ИдентификаторКоманды = "ЗакрытьЭтапыПроизводства" Тогда
    ЗакрытьЭтапыПроизводства();
    КонецЕсли;

    КонецПроцедуры
```