Как я создал внешнюю обработку из встроенной


Выбранный "сделать не проведенным" работает как провести

Продолжаю начатую тему: "Как использовать конфигурацию не программисту 1с".

Как провести документы по складу с помощью встроенной в конфигурацию "Групповая обработка документов".

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

После чего открыл ее в конфигураторе и нашел в модуле запись:

 Док.СделатьНеПроведенным();

в Синтаксис-Помошнике подобрал противоположную команду:

Док.Провести(0,);

Кроме того, редактируемая строка включена в условие:

Если Док.Проведен() > 0 Тогда
  Попытка
    // Проверка даты запрета редактирования
       Если Док.ДатаДок<=Константа.ДатаЗапретаРедактирования Тогда
         Сообщить("Нельзя отменять проведение документов с датой, более ранней чем дата запрета редактирования                           документов!","!");
            Иначе
              Док.Провести(0,);    //отредактировано!!!
       КонецЕсли;
    Исключение
   Сообщить("Не удалось отменить проведение документа "+Строка(Док.ТекущийДокумент),"!");
 КонецПопытки;
КонецЕсли;

 

В этом условии нужно заменить:

Если Док.Проведен() > 0 Тогда

на:

Если Док.Проведен() = 0 Тогда

Дальше меняем текст в Сообщить(...) по вкусу. 

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

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

По списку:

 1) Если встретится документ, с ошибкой при его проведении ( например: нет остатков товара на складе), обработка перебрав все документы выдаст:

Обработка закончена
ОтменитьТранзакцию();
{C:\BASE2010\EXTFORMS\1111111.ERT(311)}: Транзакция не активна

2) Если обработка в работе она мешает пользователям. Как заставить ее работать в не монопольном режиме? 

 

Файлы обработки:

-