Проверить проведенность документов проведение документов. Продолжение процедуры УправлениеПечатьюКлиент.ПроверитьПроведенностьДокументов.
// Продолжение процедуры УправлениеПечатьюКлиент.ПроверитьПроведенностьДокументов.
Процедура ПроверитьПроведенностьДокументовПроведениеДокументов(РезультатВопроса, ДополнительныеПараметры) Экспорт
Если РезультатВопроса <> КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
ОчиститьСообщения();
ДанныеОНепроведенныхДокументах = ОбщегоНазначенияВызовСервера.ПровестиДокументы(ДополнительныеПараметры.НепроведенныеДокументы);
ШаблонСообщения = НСтр("ru = 'Документ %1 не проведен: %2'");
НепроведенныеДокументы = Новый Массив;
Для Каждого ИнформацияОДокументе Из ДанныеОНепроведенныхДокументах Цикл
ОбщегоНазначенияКлиент.СообщитьПользователю(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Строка(ИнформацияОДокументе.Ссылка), ИнформацияОДокументе.ОписаниеОшибки),
ИнформацияОДокументе.Ссылка);
НепроведенныеДокументы.Добавить(ИнформацияОДокументе.Ссылка);
КонецЦикла;
ПроведенныеДокументы = ОбщегоНазначенияКлиентСервер.РазностьМассивов(ДополнительныеПараметры.СписокДокументов, НепроведенныеДокументы);
ИзмененныеДокументы = ОбщегоНазначенияКлиентСервер.РазностьМассивов(ДополнительныеПараметры.НепроведенныеДокументы, НепроведенныеДокументы);
ДополнительныеПараметры.Вставить("НепроведенныеДокументы", НепроведенныеДокументы);
ДополнительныеПараметры.Вставить("ПроведенныеДокументы", ПроведенныеДокументы);
ОбщегоНазначенияКлиент.ОповеститьОбИзмененииОбъектов(ИзмененныеДокументы);
// Если команда была вызвана из формы, то зачитываем в форму актуальную (проведенную) копию из базы.
Если ТипЗнч(ДополнительныеПараметры.Форма) = Тип("ФормаКлиентскогоПриложения") Тогда
Попытка
ДополнительныеПараметры.Форма.Прочитать();
Исключение
// Если метода Прочитать нет, значит печать выполнена не из формы объекта.
КонецПопытки;
КонецЕсли;
Если НепроведенныеДокументы.Количество() > 0 Тогда
// Спрашиваем пользователя о необходимости продолжения печати при наличии непроведенных документов.
ТекстДиалога = НСтр("ru = 'Не удалось провести один или несколько документов.'");
КнопкиДиалога = Новый СписокЗначений;
Если ПроведенныеДокументы.Количество() > 0 Тогда
ТекстДиалога = ТекстДиалога + " " + НСтр("ru = 'Продолжить?'");
КнопкиДиалога.Добавить(КодВозвратаДиалога.Пропустить, НСтр("ru = 'Продолжить'"));
КнопкиДиалога.Добавить(КодВозвратаДиалога.Отмена);
Иначе
КнопкиДиалога.Добавить(КодВозвратаДиалога.ОК);
КонецЕсли;
ОписаниеОповещения = Новый ОписаниеОповещения("ПроверитьПроведенностьДокументовЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ПоказатьВопрос(ОписаниеОповещения, ТекстДиалога, КнопкиДиалога);
Возврат;
КонецЕсли;
ПроверитьПроведенностьДокументовЗавершение(Неопределено, ДополнительныеПараметры);
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ПроверитьПроведенностьДокументов (БСП)
ПроверитьПроведенностьДокументовДиалогПроведения (БСП)
ПроверитьУстранениеПроблемыДокументаОбработкаПроведения (БСП)
ПроверитьПроведенностьДокументовЗавершение (БСП)
Программное проведение документа
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)