УТ11 программный запрет печати документов без реквизита в значении "Истина"
Возьмём документ РеализацияТоваровИУслуг, например, ему мы программно задали реквизит "МожноПечатать" булевский. Когда он установлен(Истина), то документ можно распечатать и наоборот. Так вот, просто сделать запрет печати одного документа нетрудно, но сделать запрет из формы списка документа никак не получается нормально. То есть, если я в списке выделю 3 документа и у одного из них "галочка" на реквизите есть, нажму печать для всех трёх, то должен распечатать только тот, который с включённым полем на форме.
Сначала попробовал просто сделать цикл с условием на МассивОбъектов,
Для каждого Док из МассивОбъектов цикл
// в МассивОбъектов лежат три выделенных документа в форме списка и отправленные на печать
Если НЕ Док.МожноПечатать = Ложь тогда
Сообщить("Распечатать документ без включённого признака ""Можно распечатать"" нельзя!");
Возврат;
КонецЕсли;
КонецЦикла;
Но проблема данного кода в том, что он отменяет распечатку всех выделенных документов, поданных на печать, а не только тех, у которых нет критерия (потому что "Возврат;"). Потом попробовал из этого массива удалять элементы, которые без признака, так он где-то потом дальше в функциях всё равно запоминает, что документа было три и на печать их подаёт, несмотря на то, что в массиве до этого было 2 элемента. Кто-то сталкивался с подобной задачей?
Сначала попробовал просто сделать цикл с условием на МассивОбъектов,
Для каждого Док из МассивОбъектов цикл
// в МассивОбъектов лежат три выделенных документа в форме списка и отправленные на печать
Если НЕ Док.МожноПечатать = Ложь тогда
Сообщить("Распечатать документ без включённого признака ""Можно распечатать"" нельзя!");
Возврат;
КонецЕсли;
КонецЦикла;
Но проблема данного кода в том, что он отменяет распечатку всех выделенных документов, поданных на печать, а не только тех, у которых нет критерия (потому что "Возврат;"). Потом попробовал из этого массива удалять элементы, которые без признака, так он где-то потом дальше в функциях всё равно запоминает, что документа было три и на печать их подаёт, несмотря на то, что в массиве до этого было 2 элемента. Кто-то сталкивался с подобной задачей?
По теме из базы знаний
Найденные решения
Вам можно еще сделать в форме списка чтобы когда реквизит "МожноПечатать" равен Истина , тогда фон строки выделить цветом. Сразу будет видно что можно печатать, а что не будет печататься, даже если пользователь выделит строку. Проверку на возможность распечатки можно добавить в модуле общей формы ПечатьДокумента. Тоже обход в цикле и использовать оператор "Продолжить", а не "Возврат".
Остальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(1) ну и забей, если выделили, то, что нельзя печатать - не печатай все выделенные, выведи свой булевый флаг на форму списка, по нему будет проще пользователю понять - можно печатать или нет.
Либо - "так он где-то потом дальше в функциях всё равно запоминает" - смотри отладчиком откуда он берет, и там обработай.
P.S.: привет землякам )
Либо - "так он где-то потом дальше в функциях всё равно запоминает" - смотри отладчиком откуда он берет, и там обработай.
P.S.: привет землякам )
Вам можно еще сделать в форме списка чтобы когда реквизит "МожноПечатать" равен Истина , тогда фон строки выделить цветом. Сразу будет видно что можно печатать, а что не будет печататься, даже если пользователь выделит строку. Проверку на возможность распечатки можно добавить в модуле общей формы ПечатьДокумента. Тоже обход в цикле и использовать оператор "Продолжить", а не "Возврат".
Вакансии
1С-Программист (интегратор Битрикс24)
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день