Печать непроведенных документов УТ 11.4

1. andryandry 100 20.12.18 22:13 Сейчас в теме
Столкнулся с тем что в УТ 11.4 нельзя распечатать непроведенный документ
Возможно не нашел таких настроек прав, но видел их для УПП

Поэтому сделал такое лекарство-
Лучше всего вставить в расширение конфигурации в процедуру "ХХХ_ПриСозданииНаСервереПосле" интересующего документа

Следующий код

ТЗ = ПолучитьИзВременногоХранилища(ЭтотОбъект.ПараметрыПодключаемыхКоманд.АдресТаблицыКоманд);
    Для каждого стр из ТЗ.НайтиСтроки(Новый Структура("Вид,РежимЗаписи","Печать","Проводить")) цикл
        Стр.РежимЗаписи="Записывать";
    Конеццикла;    
    ПоместитьВоВременноеХранилище (ТЗ,ЭтотОбъект.ПараметрыПодключаемыхКоманд.АдресТаблицыКоманд);


Надеюсь кому то пригодится
ArTz; user1374720; LeXXeR; Vikingir; Red1; swi76; user785269; Altez; korzhishe; Ranel; IronCAT09; user706781_juliacit; Мирный; +13 Ответить
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. daruxa 16.01.19 15:11 Сейчас в теме
Добрый день.
а вы могли бы чуть поподробнее написать какое расширение нужно создать? К какому объекту?
3. andryandry 100 16.01.19 20:46 Сейчас в теме
(2) Расширение конфигурации. И в форме интересующего документа в процедуре ПриСозданииНаСервереПосле написать этот код

мат часть http://blog.it-terminal.ru/programmirovanie-1s/1s-rasshirenie-konfiguracii.html

надеюсь меня не забанят за ссылки на сторонние ресурсы
11. Ranel 27.02.20 08:29 Сейчас в теме
(1)А подскажите пожалуйста, каким образом можно внешнюю обработку сделать, для такого же функционала
13. andryandry 100 27.02.20 09:07 Сейчас в теме
(11)https://infostart.ru/public/985753/ - это расширение (чем не внешняя обработка?)

через обычную внешнюю обработку этим способом никак, нужен же оверрайд
23. nano1c 173 11.12.23 20:50 Сейчас в теме
(1) или вот так в расширении модуля ДополнительныеОтчетыИОбработкиКлиентПереопределяемый:

&После("ПередВыполнениемКомандыПечатиВнешнейПечатнойФормы")
Процедура Х_ПередВыполнениемКомандыПечатиВнешнейПечатнойФормы(ПечатаемыеОбъекты, СтандартнаяОбработка) Экспорт
    
    Для Каждого ПечОбъект ИЗ ПечатаемыеОбъекты Цикл
        Если ТипЗнч(ПечОбъект) = Тип("ДокументСсылка.РеализацияТоваровУслуг") 
        или ТипЗнч(ПечОбъект) = Тип("ДокументСсылка.ПередачаТоваровХранителю") 
        или ТипЗнч(ПечОбъект) = Тип("ДокументСсылка.ПеремещениеТоваров") Тогда 
            СтандартнаяОбработка=Ложь;    
        Иначе
            СтандартнаяОбработка=Истина;
            Прервать;
        КонецЕсли;
    КонецЦикла;
    
    
    
КонецПроцедуры
Показать
4. zimad 24.01.19 01:00 Сейчас в теме
Да работает, спасибо огромное (КА 2.4.6.189), если еще к этому всему добавить проверку дополнительного реквизита Пользователя (например "Пользователю разрешено печатать не проведенные документы" с именем "ПользователюРазрешеноПечататьНепроведенныеДокументы_ДР"), тогда получается полноценный функционал с разрешением и запретом. Как вариант:

// Берем Текущего пользователя открывшего форму документы, (не важно кто это документ создавал) и проверяем на разрешение печати, значение дополнительного реквизита получим через существующую функцию в ТК...
    ПользователюРазрешеноОтправлятьНаПечатьНД = УправлениеСвойствами.ЗначениеСвойства(ПараметрыСеанса.ТекущийПользователь, "ПользователюРазрешеноПечататьНепроведенныеДокументы_ДР");
    Если ПользователюРазрешенаПечатьНД Тогда
        ТЗ = ПолучитьИзВременногоХранилища(ЭтотОбъект.ПараметрыПодключаемыхКоманд.АдресТаблицыКоманд);
        Для Каждого Стр Из ТЗ.НайтиСтроки(Новый Структура("Вид, РежимЗаписи", "Печать", "Проводить")) Цикл
            Стр.РежимЗаписи = "Записывать";
        КонецЦикла;
        ПоместитьВоВременноеХранилище (ТЗ, ЭтотОбъект.ПараметрыПодключаемыхКоманд.АдресТаблицыКоманд);
    КонецЕсли;
Показать
5. vi100k 8 10.07.19 10:14 Сейчас в теме
к сожалению, на конфе УТ 11.4.6.230 не удалось
6. BizCase 11.09.19 16:26 Сейчас в теме
У меня только один вопросы, зачем? Я могу 100500 причин написать почему в типовых запрещено печатать непроведенные документы и не одной причины разрешать печатать их, причем глобально всех, а не точечно.
7. StiVitS 93 20.12.19 17:46 Сейчас в теме
(6)Назови пожалуйста хотя бы 1050 :)
12. Ranel 27.02.20 08:32 Сейчас в теме
(7)одна из причин, что бы не смогли не санкционированно реализовать товар со склада и скрыть этот факт.
например создали расходную накладную, распечатали, не провели
и вывезли товар на свои нужды

такой вариант подходит?
22. baracuda 2 11.09.21 13:38 Сейчас в теме
(6) всегда поражали такие ответы
Я вам также могу привести 100500 причин почему это нужно, но думаю достаточно озвучить и 1 причину, так хочет заказчик.
8. maikl007 92 10.01.20 13:08 Сейчас в теме
&Вместо("ОписаниеКоманды")
Функция Расширение_ОписаниеКоманды(ИмяКоманды, АдресНастроек)
    // Вставить содержимое метода.
    Результат = ПродолжитьВызов(ИмяКоманды, АдресНастроек);
    
    Если ТипЗнч(Результат)=Тип("ФиксированнаяСтруктура") Тогда
        Если Результат.Свойство("Вид") и Результат.Свойство("РежимЗаписи") Тогда
            Если Результат.Вид="Печать" и Результат.РежимЗаписи="Проводить" Тогда
                Результат = Новый Структура(Результат);
                Результат.РежимЗаписи = "Записывать";
                Результат = Новый ФиксированнаяСтруктура(Результат);
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
    
    Возврат Результат;
    
КонецФункции
Показать


Для УТ 11.4.10, добавить в расширение модуль"ПодключаемыеКомандыКлиентПовтИсп"
9. kovv 4 26.01.20 16:45 Сейчас в теме
Для печати ТОРГ-12 не работает. Пишет, что товары отсутствуют и печатная форма недоступна. (( (УТ 11.4.9.70)
10. Ranel 27.02.20 08:26 Сейчас в теме
(9)Предлагаю Вам следующее решение:
провести документ, распечатать, а потом отменить проведение

у кого какие мнения на этот счёт?
чем чревато или какие минусы?
14. Dwiss 162 26.03.20 10:17 Сейчас в теме
(10)Не прокатит, если стоит проверка отрицательных остатков(если отключить не будет контроля остатков), вообще такие случаи есть когда нужно сделать ТОРГ12 - например бюджетникам сначала нужен пакет документов, а потом только привезти товар, по счетам бюджетные организации не работают.
15. Dwiss 162 26.03.20 10:19 Сейчас в теме
Вот сейчас тоже мудрю с печатью не проведенных документов, есть идеи или решения?
16. Ranel 26.03.20 11:31 Сейчас в теме
(15)здесь есть доработка

https://infostart.ru/public/985753/

и тема на эту тему

https://forum.infostart.ru/forum64/topic206384/

пользуйтесь
17. Dwiss 162 26.03.20 15:14 Сейчас в теме
(16) чего то я не понимаю, сделал расширение, но в итоге печатная форма не выводится, оба решения пишет "Печатная форма не доступна"
Прикрепленные файлы:
18. ramis333 2 21.01.21 09:57 Сейчас в теме
Заказ клиента и счет печатаются, а торг-12 и сче-фактура нет
19. WinterIT 25.03.21 14:59 Сейчас в теме
Всем привет, вот и я наткнулся на задачу печати Торг-12 для не проведенного документа, не будем касаться методических причин зачем это надо, задача поставлена и её надо решать. Суть проблемы заключается в том, что данные для печати Торг-12 собираются не из ТЧ Товары, а из ТЧ ВидыЗапасов, а это табличная часть заполняется только при проведении, а при отмене проведения зачищается.
Собственно идея реализации, состоит в том, чтобы заполнить эту табличную часть при записи документа, а у же потом при помощи описанного тут механизма разрешить печатать документ, в сети много примеров реализаций механизма разрешения печати не проведенных, мне больше нравится такой:

&После("ДобавитьКомандыПечати")
Процедура WIT0ДобавитьКомандыПечати(КомандыПечати)
    
    Отбор = Новый Структура("Идентификатор", "ТОРГ12");
    СтрокиТЗ = КомандыПечати.НайтиСтроки(Отбор);
    
    Для каждого СтрокаТЗ Из СтрокиТЗ Цикл
    
        СтрокаТЗ.ПроверкаПроведенияПередПечатью = Ложь;
    
    КонецЦикла; 
    
    Отбор = Новый Структура("Идентификатор", "СчетФактура");
    СтрокиТЗ = КомандыПечати.НайтиСтроки(Отбор);
    
    Для каждого СтрокаТЗ Из СтрокиТЗ Цикл
    
        СтрокаТЗ.ПроверкаПроведенияПередПечатью = Ложь;
    
    КонецЦикла; 
    
КонецПроцедуры

Показать


Так как он работает сразу для основной формы и формы списка не надо писать код в две формы, а только в модуль менеджера документа РеализацияТоваровУслуг. Итак печать не проведенных мы разрешили, далее надо нам заполнить ТЧ ВидыЗапасов, идем в модуль документа и пишем такой код:

&После("ПередЗаписью")
Процедура WIT0ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    
    Если РежимЗаписи = РежимЗаписиДокумента.Запись Тогда
        ЗаполнитьВидыЗапасов(Отказ);
    КонецЕсли; 
    
КонецПроцедуры


Показать


В итоге получаем результат, после записи документа форма формируется и выводится на печать.
s2014911; idw; +2 Ответить 2
20. baracuda 2 29.06.21 10:50 Сейчас в теме
(19) ДобавитьКомандыПечати а эта процедура из какого общего модуля?
24. freeek 09.02.24 10:41 Сейчас в теме
(19) У меня не дает сохранить непроведенный документ после заполнения видов запасов. Ругается на отсутствие остатков по налогообложению, хотя документ не провожу, а просто сохраняю.
21. baracuda 2 29.06.21 11:18 Сейчас в теме
Разобрался, в модуле менеджера нужного документа. спасибо все работает.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот