Как я создал внешнюю обработку из встроенной
Задачи пользователя - Адаптация типовых решений
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Продолжаю начатую тему: "Как использовать конфигурацию не программисту 1с".
Как провести документы по складу с помощью встроенной в конфигурацию "Групповая обработка документов".
Так как я не нашел на этом сайте нужную мне обработку, я приступил к выгрузке "Групповая обработка документов" во внешнюю обработку.
После чего открыл ее в конфигураторе и нашел в модуле запись:
Док.СделатьНеПроведенным();
в Синтаксис-Помошнике подобрал противоположную команду:
Док.Провести(0,);
Кроме того, редактируемая строка включена в условие:
Если Док.Проведен() > 0 Тогда
Попытка
// Проверка даты запрета редактирования
Если Док.ДатаДок<=Константа.ДатаЗапретаРедактирования Тогда
Сообщить("Нельзя отменять проведение документов с датой, более ранней чем дата запрета редактирования документов!","!");
Иначе
Док.Провести(0,); //отредактировано!!!
КонецЕсли;
Исключение
Сообщить("Не удалось отменить проведение документа "+Строка(Док.ТекущийДокумент),"!");
КонецПопытки;
КонецЕсли;
В этом условии нужно заменить:
Если Док.Проведен() > 0 Тогда
на:
Если Док.Проведен() = 0 Тогда
Дальше меняем текст в Сообщить(...) по вкусу.
Сохраняем и запускаем обработку, теперь если указать в ней "Сделать не проведенным" ,см. рис., обработк будет проводить документы.
Обработка уже может работать с определеными недостатками, с основными возможно справлюсь с вашей помощью.
По списку:
1) Если встретится документ, с ошибкой при его проведении ( например: нет остатков товара на складе), обработка перебрав все документы выдаст:
Обработка закончена
ОтменитьТранзакцию();
{C:\BASE2010\EXTFORMS\1111111.ERT(311)}: Транзакция не активна
2) Если обработка в работе она мешает пользователям. Как заставить ее работать в не монопольном режиме?
Вступайте в нашу телеграмм-группу Инфостарт